【发布时间】:2013-02-06 05:05:42
【问题描述】:
祝大家有个美好的一天。正如我在标题中提到的,我想加入多个模型并使用一个全局 ID 标识其中一个,因此 ID 将确定它是哪个模型,并且我将访问它的所有字段。
目前我正在与多表继承作斗争,但我遇到了问题。我想要一个父模型和几个子模型,它们会继承父的一些字段。
class Parent(models.Model):
pass
class Child1(Parent):
fieldX = models.CharField()
class Child2(Parent):
fieldY = models.CharField()
但是我想使用主键通过父模型访问子模型。所以...
Parent.objects.all()
还应该返回 Child1 和 Child2 对象及其字段(fieldX、fieldY)。
(假设 pk=1 的 Parent 记录是 Child1 模型)
虽然当我尝试通过父模型访问子字段时
child = Parent.objects.get(pk=1)
child.fieldX
django 返回 AttributeError: 'Parent' object has no attribute 'fieldX'
我的目标是为所有子模型创建一个类似一个主键的东西。这在 Django 中可能吗?分别有没有类似的解决方案或建议?我一直在搜索 contenttype 或 GUID、UUID 等相关主题,但我想这不是我想要的。感谢您的帮助!
【问题讨论】:
标签: django inheritance model primary-key parent-child