【问题标题】:Using a Django Custom Manager使用 Django 自定义管理器
【发布时间】:2013-02-17 02:23:17
【问题描述】:

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

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

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

【问题讨论】:

  • 你想修改一个 Person 列表还是只修改一个?

标签: django django-models


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 1970-01-01
    • 2011-05-03
    • 2011-06-10
    相关资源
    最近更新 更多