gpt4 book ai didi

python - 在 Django 模型中制作树结构?

转载 作者:太空狗 更新时间:2023-10-29 21:15:34 26 4
gpt4 key购买 nike

我想要一个包含 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 是一个内部实现类,不适用于您的模型。

但是你为什么认为你仍然需要它?正如文档中详细解释的那样,当您定义一个 ForeignKey 时,您会自动获得一个反向关系。所以在你的情况下,如果你定义 parent 然后你会自动得到 self.foomodel_set :你可以通过使用 related_name 参数:

parent = models.ForeignKey('self', blank=True, null=True, related_name='children')

请注意,如果您打算用树做复杂的事情,您可能希望使用 django-mptt图书馆。

关于python - 在 Django 模型中制作树结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com