Django - Erstellen Sie Excel-Berichte basierend auf Modellfeldern

8

Die Anwendung basiert auf django / angular . Ich möchte einen Excel-Bericht basierend auf dem Modell und den von den Benutzern ausgewählten Feldern erstellen. Sie können die Suchoberfläche unten finden. Ich habe 4 Modelle in Django. Coach , Spieler , Teilnahme mit einem Fremdschlüsselbezug zu Club (One-to-Many-Beziehung). Das individuelle Django-Modell fungiert als Auswahleingabe und Modellfelder als Optionen

models.py

%Vor%

Suchoberfläche (Dropdown-Menü auswählen)

%Vor%

Anwendungsfall

%Vor%

HTML     

%Vor%

Angulares JS

%Vor%

Die ausgewählten Felder von ausgewählten Eingaben werden an Django-Ansichten für Abfrage und Ergebnisverkettung gesendet. Die Daten, die an Django-Ansichten gesendet werden, sehen folgendermaßen aus:

%Vor%

Ansichten

%Vor%

So muss die json-Antwort aussehen. Die JSON-Antwort wird in die Excel-Datei

konvertiert %Vor%

Hilfe

Wie kann ich basierend auf ausgewählten Modellfeldern alle Datensätze zu Clubs und ausländischen Schlüsseldaten (Coach, Spieler, Teilnahme) abrufen? ? Beispiel für Bericht ist oben gezeigt.

Jede Hilfe und Feedbacks sind willkommen.

    
MysticCodes 27.04.2016, 13:26
quelle

3 Antworten

2

Sie haben den Code Ihrer Modelle nicht angegeben.

Im Allgemeinen erhalten Sie eine Liste bestimmter Felder mit den sehr hilfreichen Methoden .values() oder .values_list() von QueryManager . Sie können die Beziehung von Werten mit __ wie club__name referenzieren.

Ich nehme an, dass eine Zeile in Ihrem Export sich auf einen Spieler bezieht. Also müsste die Beziehung vom Spielermodell aus erstellt werden.

Beispiel:

%Vor%

ManyToMany-Felder sind schwieriger. Sie benötigen möglicherweise Aggregation oder extra und select Aufrufe im QueryManager.

    
Risadinha 27.04.2016, 16:28
quelle
2

Versuchen Sie diesen Code

%Vor%     
Anoop 08.05.2016 21:18
quelle
2

Tatsächlich gibt es ein Dienstprogramm, mit dem Sie CSV-Daten aus Django-Abfragesätzen mit allen Funktionen von Verkettung in Suchfelder exportieren können: django-queryset-csv .

Verwendung exapmle:

%Vor%

Blog von azavea für weitere Anwendungsbeispiele. Ich hoffe, du könntest das hilfreich finden.

    
DhiaTN 11.05.2016 11:44
quelle