【发布时间】:2013-03-18 20:41:11
【问题描述】:
我想要一个有 2 个字段的模型,孩子和父母。我如何在 django 中做到这一点?我有这样的东西
from django.db import models
class FooModel(models.Model)
parent = models.ForeignKey('self', blank=True, null=True)
children = models.ManyToOneRel('self', blank=True, null=True)
def __init__(self, *args, **kwargs):
super(FooModel, self).__init__(*args, **kwargs)
self.parent.children.add(self)
但我认为我不应该像这样使用 ManyToOneRel(尤其是因为它在“空白”上给了我一个关键字错误)。有什么建议吗?
【问题讨论】:
-
这些都很好,但是否可以像我在上面尝试的那样直接在字段中进行操作?我宁愿不要在其中包含另一个依赖项,而且在这种情况下我不太关心效率。
-
为什么要使用
ManyToOneRel?你只是在复制信息,parent你可以使用关系向后找到它的孩子 -
好吧,我想我有点关心效率。我想缓存给定父级的子级,因此我可以轻松地从模型实例中获取它们,而无需搜索整个数据库。
标签: python django activerecord django-models