Dav*_*542 1 python mysql django django-models django-orm
我有以下查询:
sales_for_date_for_provider.exclude(sales_or_return='R').values_list('royalty_price', 'conversion_to_usd'))
Run Code Online (Sandbox Code Playgroud)
查询中的royalty_price* 是否可以乘以* conversion_to_usd?还是我需要进行列表理解或深入研究原始SQL?
Django文档警告我们该extra()方法将很快被弃用。自从我在寻找类似问题时遇到了这个答案,我想我会使用Django的内置表达式(特别是F()对象)共享另一种方法。
在回答原始问题时,您可以通过以下方法实现所需的结果:
sales_for_date_for_provider.annotate(
result=F('royalty_price') * F('conversion_to_usd'))
Run Code Online (Sandbox Code Playgroud)
通过将不同的字段与算术结合,可以使用F()在模型上创建动态字段:
这是文档中的另一个示例,进一步说明了其用法:
company = Company.objects.annotate(
chairs_needed=F('num_employees') - F('num_chairs'))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2144 次 |
| 最近记录: |