gpt4 book ai didi

python - Django 模型父链接的自定义相关名称?

转载 作者:太空宇宙 更新时间:2023-11-04 03:35:18 25 4
gpt4 key购买 nike

我正在处理一个需要可扩展的 Django 项目。因此,为此,我在核心应用程序和各种模板方法中创建了一系列基本模型(一些是抽象的,一些不是),以便可以毫不费力地为项目开发新的插件应用程序。

问题是,我有几个不同的插件应用程序,它们包含与核心应用程序具有相同名称和相同父类(super class)的模型。我觉得这些模型只适用于少数具有完全不同的独立实现的应用程序,在核心应用程序中有一个公共(public)类实际上没有意义。

核心应用:

class MyBaseClass(models.Model):
"""
This is the base class.
"""
pass

插件应用 1:

class MySubclass(MyBaseClass):
"""
Some subclass.
"""
pass

插件应用 2:

class MySubclass(MyBaseClass):
"""
Some other subclass.
"""
pass

这不起作用,因为为父链接创建的相关名称存在冲突,据我所知,这只是 ModelBase 元类创建的 OneToOneField。我觉得只要在相关名称中包含应用的名称就可以避免这种情况,但我不知道是否有一种务实的方法可以做到这一点。

由于这些插件应用程序将由不同的人创建,我觉得我应该处理类名冲突,特别是因为我认为它们不太可能发生。

有没有办法为父链接字段指定相关名称?还有其他想法吗?

最佳答案

您可以在子类中显式指定父链接:

class MySubclass(MyBaseClass):
mybaseclass = models.OneToOneField(MyBaseClass, parent_link=True, related_name='thissubclass')

关于python - Django 模型父链接的自定义相关名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29309178/

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