在我的 Django 1.9 项目中,我试图输出如下内容:
return MyModel.objects.values(...).\
annotate(flg = ExpressionWrapper(F('rgt') - F('lft') > 0,
output_field = BooleanField()))
Run Code Online (Sandbox Code Playgroud)
这会产生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())))
Run Code Online (Sandbox Code Playgroud)
这一次,我以TypeError: __init__() takes either a Q object or lookups as keyword arguments错误告终。我搞不清楚了。有任何想法吗 ?
django ×1