0

谁能帮我创建一个执行以下操作的自定义管理器......

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

1) 需要 2 个对象,它的自身 (Person) 和 Profile

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 的新字段,其中列出了所有人员的狗年龄。

4

1 回答 1

1

这不是您在经理中要做的事情。这是普通模型方法的工作。

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

于 2013-02-16T18:23:17.080 回答