Str*_*est 5 python django postgresql
我的Order
模型如下所示:
class Order(models.Model):
...
billing_email = models.EmailField()
...
Run Code Online (Sandbox Code Playgroud)
我要查找的所需输出是一个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'
Run Code Online (Sandbox Code Playgroud)
我需要评估并作为每个实例的额外字段输出的值几乎是:
Order.objects.filter(billing_email__iexact=<current_billing_email>).count()
Run Code Online (Sandbox Code Playgroud)
对于每个实例,我真的不想遍历实际实例并进行重构。我一定在这里缺少一些简单的解决方案。
在此先感谢您的帮助。
小智 5
您可以使用模型的表名称引用“当前”行:
RawSQL( "SELECT COUNT(*) FROM appname_order order WHERE order.billing_email =appname_order.billing_email",[])
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
275 次 |
最近记录: |