相等性检查在我的Django 1.9的项目,我想输出是这样的:Django的 - 在注释子句
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
错误。我搞不清楚了。有任何想法吗 ?