我有一个名为Product的模型,带有自定义属性:
def _get_active(self):
o = get_option()
if self.date_expiration == None:
return True
if self.date_expiration <= o.working_month:
return False
return True
active = property(_get_active)
...在我的一个方法中,我有这一行:
products = g.product_set.filter(active__exact=True)
但是尽管(我认为)我已经正确设置了属性,但上面的行给了我“无法将关键字'活动'解析为字段。”我在这里缺少什么?
提前致谢。
答案 0 :(得分:3)
您只能查询实际字段,而不能查询属性。
答案 1 :(得分:1)
扩展Ignacio的答案,你可以这样做:
products = [x for x in g.product_set.iterator() if x.active]
虽然这样效率会非常低,因为您必须加载x.product_set
中的每条记录。