首页 > 解决方案 > Django模型继承reverse_name问题

问题描述

让我们从botton开始,这就是我想要实现的

class ClassA(model.Models):
    pass

class Class1(model.Models):
    fieldX = models.CharField()

class Class2(Class1):
    fieldY = models.BooleanField()

# all models are connected, and I prefere to have this situation
# I want to call related ClassA from both Class1 and Class2 using the 
# same property
c1 = Class1()
c1.class_a 

c2 = Class2()
c2.class_a 

# and, at the same time, call both Class1 and Class2 from ClassA
a = ClassA()
a.class_1
a.class_2

为了解决这个问题,我正在复制代码(我不喜欢它):

class Class1(model.Models):
    fieldX = models.CharField()

class Class2(model.Models):
    fieldY = models.BooleanField()
    fieldX = models.CharField()

class ClassA(models.Models):
    class_1 = models.OneToOneField(Class1, reverse_name='class_a')
    class_2 = models.OneToOneField(Class2, reverse_name='class_a')

这些字段远不止这个虚拟示例,修改它们非常烦人。我怎样才能做到这一点?我有很多“reverse_name”字段错误来实现这一点,有解决方法吗?

标签: djangopython-3.xsqlitemodelsreverse

解决方案


推荐阅读