[Python] Aggregation mit django-eztables


Answers

Question

Ich verwende django-eztables , um eine serverseitige Verarbeitung einer Datentabelle durchzuführen . Es funktioniert soweit, aber jetzt versuche ich, meiner Tabelle ein Feld hinzuzufügen, das die Gesamtzahl der Objekte enthält, die über einen bestimmten Fremdschlüssel mit dem Objekt verbunden sind. Es ist einfach genug, dies mit fnRender auf der Client-Seite richtig anzuzeigen, aber da die Sortierung auf der Serverseite erfolgt, muss ich die Aggregation auf der Serverseite durchführen. Dies hat sich als schwierig erwiesen.

Ich kann keinen Weg finden, dies auf der Serverseite zu handhaben. Die Einträge im fields-Objekt scheinen nur tatsächliche Modellfelder zu akzeptieren, und ich sehe keine Möglichkeit, die von meinen Google-Ergebnissen vorgeschlagene Annotation einzufügen. Ich habe nach einer benutzerdefinierten Sortierung gesucht, aber da ich nur eine Zeichenfolge erstelle, scheint das nicht wirklich zu helfen.

Idealerweise würde ich gerne eine Möglichkeit finden, eine Aggregation der Fremdschlüsselbeziehung direkt im Feldwörterbuch zu verwenden.

fields = {
    'id': 'id',
    'name': 'name',
    'total_items': 'items__count' #Something like this, where Item has a foreign key to the object the datatable is composed of
    #More fields...
}

Wenn das nicht möglich oder nicht machbar ist, reicht es aus, dass die Sortierung auf der Aggregation basiert, da ich die Daten, die in der Tabelle angezeigt werden, von der Clientseite aus ändern kann, und ich muss keine Filterung durchführen.