我在模型中有一个querysets
,例如
class ModelA(models.Model):
name = models.Charfield(max_length=256)
ageMin = models.IntegerField(null=True, blank=True)
ageMax = models.IntegerField(null=True, blank=True)
def age(self):
low = self.ageMin
high = self.ageMax
if low and high:
return str(low) + ' - ' + str(high)
if low:
return str(low)
if high:
return str(high)
让我们说我有一个查询集来获取ModelA
的所有回报
我实际上想在所有查询集中添加一个字段,例如名为age_gap
的字段,它是模型本身的def age
,因此每个查询集还将有一个名为gap_gap
的额外字段,而不仅仅是{ {1}}
我尝试了类似下面的内容,但没有工作。
name, ageMin, ageMax
上述不起作用
所以我想尝试类似的东西 对于all_q中的q: q [' age_gap'] = q.age()
当然这也给了我错误
有人可以告诉我如何做到这一点吗?
提前致谢
答案 0 :(得分:2)
您可以使用@property
或@cached_property
class ModelA(models.Model):
name = models.Charfield(max_length=256)
ageMin = models.IntegerField(null=True, blank=True)
ageMax = models.IntegerField(null=True, blank=True)
def age(self):
low = self.ageMin
high = self.ageMax
if low and high:
return str(low) + ' - ' + str(high)
if low:
return str(low)
if high:
return str(high)
@property
def age_gap(self):
return self.age()