Mon modèle Order
ressemble à ceci:
class Order(models.Model):
...
billing_email = models.EmailField()
...
La sortie désirée que je recherche est un ValuesQuerySet
qui contiendrait certaines valeurs de champs et une valeur calculée du nombre de commandes avec le même billing_email
.
J'essayais de faire référence au champ billing_email
avec l'objet F
mais en faisant ce qui suit, j'obtiens une erreur:
In [68]: orders = Order.objects.annotate(
total_orders=RawSQL(
"SELECT COUNT(*) FROM appname_order WHERE billing_email = %s",
(F('billing_email'),) # courriel de facturation de l'instance actuelle
),
)
In [69]: orders
Out [70]: ProgrammingError: can't adapt type 'F'
Essentiellement, la valeur que je dois évaluer et afficher en tant que champ supplémentaire pour chaque instance est la suivante:
Order.objects.filter(billing_email__iexact=).count()
pour chaque instance et je préférerais vraiment éviter de boucler à travers les instances actuelles et reconstruire. Je dois manquer d'une solution simple ici.
Merci d'avance pour votre aide.