我使用下面的代码对不同表中的字段求和。但是,如果没有与table2中的table1_id匹配的记录,则django将返回None
Table 1
id val
1 2
2 3
Table 2
id val table1_id
1 5 1
以下查询将返回:
7
None
我将如何回归:
7
3
Django查询:
SomeModel.objects.filter(
some_filters
).annotate(
var=ExpressionWrapper(
F('val') + F('table2__val'), output_field=FloatField()
)
)
答案 0 :(得分:1)
使用Coalesce
中的django.db.models.functions
解决了我的问题
SomeModel.objects.filter(
some_filters
).annotate(
var=ExpressionWrapper(
F('val') + Coalesce(F('table2__val'), 0), output_field=FloatField()
)
)