我有这个模型
class Home(models.Model):
...
number_female = models.IntegerField()
number_male = models.IntegerField()
def all_people(self):
return self.number_female + self.number_male
all_members = all_people(self)
我得到:name 'self' is not defined
。你知道吗
如何定义一个字段来获取models方法的结果?这个Home
场景只是一个例子,我有更复杂的模型,我只是想让问题更清楚。你知道吗
您仍然需要将
all_members
定义为模型字段(而不是整数),然后在save()
实例时用所需的值填充它。你知道吗如果要将
all_members
这样的计算字段添加为模型的一部分,则必须重写save
函数:现在可以按
all_members
过滤。在这种情况下,最好对all_members
使用@property
装饰器。你知道吗另一种方法是使用Django在a different stackoverflow answer中提到的
extra
方法我认为DjangoManagers可以解决这个问题。示例:
自定义管理器:
型号:
视图:
相关问题 更多 >
编程相关推荐