【发布时间】:2026-01-18 17:15:01
【问题描述】:
我有一个 Person 模型,其中有许多 Animal 模型作为宠物。狗是具有“最喜欢的骨头”字段的动物,而猫是具有“喜欢猫薄荷”的动物?字段和“最喜欢的鱼”字段。
#models
class Person(db.model):
pass
class Animal(db.model):
models.ForeignKey(Person) #owner
name = CharField()
class Dog(Animal):
favorite_bone = CharField()
class Cat(Animal):
favorite_fish = CharField()
likes_catnip = BooleanField()
我想内联编辑所有的 Persons 宠物,但是在 Person 管理表单中,我读到 Django 内联管理表单不支持多态内联表单[1],你只会得到父类字段(例如,不是 favorite_bone 或 favorite_fish 和 likes_catnip 字段。
这个问题从何而来?
可以对框架进行哪些更改以适应这种情况?
如果不应该进行这些更改,为什么不呢?
[1]http://www.mail-archive.com/django-users@googlegroups.com/msg66410.html
【问题讨论】:
-
+1: 好问题。你在 djangos 'bug'tracker 上发布了吗?
标签: django-admin django-forms polymorphism