我看到令人困惑的是,在序列化django对象时看起来很糟糕。例如,我有模特:
class MyTag(TagBase):
user = models.ForeignKey(User)
class MyMpttTag(MPTTModel, MyTag):
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
class MPTTMeta:
parent_attr = 'parent'
表示MyMpptTag的字段为name, slug, user, parent
。但当我做serializers.serialize('json', MyMpptTag.object.all())
时,我得到:
[{" fields":{" lft":1," level":0," tree_id":29," parent& #34;:null," rght":2}," model":" index.mymptttag"," pk":45}。 ..]
为什么我会失去name, slug, and user
,我该如何取回它们?谢谢
答案 0 :(得分:1)
在该模型设计中,您将在数据库中拥有2个表:
yourapp_mytag
将具有主键列(正常自动增量列),所有列都继承自TagBase
(只要TagBase
是抽象的)和列用户 - 外键到模特用户yourapp_mymptttag
将拥有主键列,该列也是MyTag
模型的外键和mptt的列。不存在从MyTag
继承的任何列。这意味着:模型MyTag
中没有从MyMpttTag
继承的列,只有MyTag
中实际列的引用。
在序列化中,将有两种类型的对象:MyMpttTag
和MyTag
。