我正在做一个需要扩展的Django项目。因此,我在一个核心应用程序中创建了一系列基本模型(有些抽象,有些不是),以及各种模板方法,这样就可以轻松地为项目开发新的插件应用程序。
问题是,我有两个不同的插件应用程序,它们包含了与核心应用程序同名和相同超类的模型。我觉得这些模型只适用于少数具有完全不同独立实现的应用程序,在核心应用程序中只有一个公共类是没有意义的。
核心应用程序:
class MyBaseClass(models.Model):
"""
This is the base class.
"""
pass
插件应用程序1:
^{pr2}$插件应用程序2:
class MySubclass(MyBaseClass):
"""
Some other subclass.
"""
pass
这不起作用,因为在为父链接创建的相关名称中存在冲突,据我所知,父链接只是ModelBase元类创建的OneToOneField。我觉得只要在相关名称中包含应用程序的名称就可以避免这种情况,但我不知道是否有一种实用合理的方法来做到这一点。
由于这些插件应用程序将由不同的人创建,我觉得我应该处理类名冲突,特别是因为我不认为它们不太可能发生。
有没有办法指定父链接字段的相关名称?有其他的想法吗?
可以在子类中显式指定父链接:
相关问题 更多 >
编程相关推荐