Mein Modell sieht so aus: Jedes Bottle
hat ein Attribut name
und eine Beziehung zu Brand
.django: Filterung mit mehreren Kriterien, ohne andere Felder zu verlieren?
In einer meiner Ansichten möchte ich einem Benutzer alle eindeutigen Flaschen und ihre Zählungen zeigen.
Eine eindeutige Flasche ist eine Flasche, die das gleiche name
Attribut und die gleiche Brand
Beziehung hat.
2 Zeilen anstelle von 3 angezeigt werden soll, mit den richtigen Mengen (1 für Eitan, 2 für Almon).
Die folgende Zeile in meinem views.py
:
object = Bottle.objects.filter(brand__business__owner_id=user.id).all().values('name').annotate(Count('brand'))
Erzeugt das, wenn ich drucken object
:
<QuerySet [{'name': 'Almon', 'brand__count': 2}, {'name': 'Eitan', 'brand__count': 1}]>
Welche die richtige Richtung zu sein scheint, aber es hat zwei Probleme:
Ich verliere al l andere Felder (
vintage
,capacity
) außername
undbrand__count
. Ich kann sie natürlich explizit zu Werten hinzufügen, aber das scheint a) upythonisch b) dass es sich auch um diese Elemente gruppieren wird!Mein Pug-Template klagt: Benötige 2 Werte zum Auspacken in for-Schleife; 1 erhalten (weil ich sie als Liste durchlaufen habe und den Index für die Nummerierung verwende)
Jede Hilfe wird geschätzt!
Also, wo ist diese Gruppierung durch die Namen der Flasche und seine Marke? – zerohedge
überprüfen Sie die beiden Sie verstehen werden. Probieren Sie es zuerst aus – Exprator
OK sie beide ausgeben alle Felder außer dem 'brand__name', der der Markenname der Flasche ist. So wie ich es verstehe und bevor ich deine Antwort als die richtige überprüfe: Muss ich die Felder explizit aufrufen, wenn ich ein Related-Entity-Attribut haben möchte? – zerohedge