【发布时间】:2017-02-19 20:10:28
【问题描述】:
在我的 Django 1.9 项目中,我试图输出如下内容:
return MyModel.objects.values(...).\
annotate(flg = ExpressionWrapper(F('rgt') - F('lft') > 0,
output_field = BooleanField()))
这会产生AttributeError: 'bool' object has no attribute 'resolve_expression' 错误。
我尝试使用Case-when 语法重写它:
return MyModel.objects.values(...)\
.annotate(flg = Case(When(F('rgt') - F('lft') > 0, then = True,
output_field = BooleanField())))
这一次,我遇到了TypeError: __init__() takes either a Q object or lookups as keyword arguments 错误。我搞不清楚了。有什么想法吗?
【问题讨论】:
标签: django