相等性檢查在我的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
錯誤。我搞不清楚了。有任何想法嗎 ?