0
我想实现下面的模型结构:处理模型继承和REST
class X(models.Model):
class Meta:
abstract = True
objects = InheritanceManager()
agroup = models.ForeignKey(A, related_name="%(class)s_set")
xfield = models.CharField()
class A(models.Model):
class Y(X):
yfield = models.CharField()
class Z(X):
zfield = models.CharField()
第一个问题是,基本X类不能因为我需要能够是抽象的,似乎遍历X(Y,Y,Y,Z,Z)的所有子类,所以我需要访问管理器。虽然X是抽象的,但X.objects不起作用。
第二个问题是在REST序列化程序中。我只能在ASerializer中引用x_set,因为它是A上唯一存在的属性,并且只显示嵌套列表中的xfield。我真正喜欢的是ASerializer上的y_set和z_set以及它们各自的yfield和zfield的显示。
我可以通过不同的配置实现这一点(通过去除抽象或通过将FK字段直接放置在Y和Z上来区分其他序列化器中的子元素来对子元素进行迭代),但绝不会同时进行。
谢谢。
可以django-polymorphic有帮助吗? https://pypi.python.org/pypi/django_polymorphic – dm03514