使用Django自定义管理器

时间:2013-02-16 16:26:08

标签: django django-models

任何人都可以帮我创建一个执行以下操作的自定义管理器....

这对我来说只是一个学习练习,它不是真正的应用,所以我尽可能多地解释。

1)需要2个对象,其自身(人物)和个人资料

2)将person.age与profile.dog_years分开

3)将此添加到模型

我的猜测是,首先我在models.py中创建一个自定义管理器

class PersonManager(models.Manager):
    def make_score(self,profile):

在自定义管理器中,我然后进行数学self.age / profile.dog_years。

然后有些人如何归还?

将其添加到模型中,即dogAge = PersonManager()

结果:

然后,我希望发生的是,当我看到所有人的时候 返回Profile.objects.filter()(不知何故在这里传递个人资料?)它有一个名为dogAge的新字段,列出所有人的狗年龄。

1 个答案:

答案 0 :(得分:1)

这不是您在Manager中所做的事情。这是普通模型方法的工作。

管理器方法适用于以某种方式修改查询的内容。这不是你想要做的:你想要为查询集中的每个对象注释一个属性。由于这不需要任何进一步的数据库计算,因此模型方法是合适的地方。