我的Order
模型如下所示:
class Order(models.Model):
...
billing_email = models.EmailField()
...
我想要的输出是ValuesQuerySet
,其中包含一些字段值和具有相同billing_email
的订单数量的计算值。
我尝试使用billing_email
对象引用F
,但执行以下错误结果:
In [68]: orders = Order.objects.annotate(
total_orders=RawSQL(
"SELECT COUNT(*) FROM appname_order WHERE billing_email = %s",
(F('billing_email'),) # current instance's billing_email
),
)
In [69]: orders
Out [70]: ProgrammingError: can't adapt type 'F'
我需要评估和输出作为每个实例的额外字段的值几乎是:
Order.objects.filter(billing_email__iexact=<current_billing_email>).count()
对于每个实例,我真的不想循环实际实例并重建。我必须在这里找到一些简单的解决方案。
提前感谢您的帮助。
答案 0 :(得分:3)
您可以参考&#34;当前&#34;使用模型的表名称的行:
RawSQL( "SELECT COUNT(*) FROM appname_order order WHERE order.billing_email =appname_order.billing_email",[])