Ich habe den folgenden Manager bekommt:Django - Wie erhalte ich Anzeigenamen innerhalb queryset .values ()
class Totals(Manager):
def by_customer_and_date(self, start_date, end_date):
qs = self.model.objects.filter(
date__range=(start_date, end_date)
).values(
"customer"
).annotate(
...bunch of stuff...
)
return qs
Wo customer
ist ein FK Bezug auf ein anderes Objekt. Momentan packt das Queryset die verwandten customer
Objects-IDs, aber ich möchte, dass es stattdessen die Anzeigenamen verwendet, damit ich es schön für meine Vorlage zusammenpacken kann.
Vorerst habe ich folgendes in die Krippe gelegt:
for q in qs:
q['customer'] = Customer.objects.get(id=q.get('customer')).name
Es funktioniert gut, aber es fühlt sich an wie zusätzliche Arbeit .. für mich ist es 50-Datenbank ein, im Gegensatz trifft. Gibt es irgendwelche Abkürzungen, um den Anzeigenamen sofort ins qs Wörterbuch zu setzen?
Rechts auf. Ich liebe Django. Jetzt kann ich es in meiner Vorlage mit '{{item.customer__name}}' greifen –