我想要2个模型如下工作: 从Link类继承的Content类。 听起来很简单。 这是我的模型(相关部分):
class Link(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(unique = True)
level = models.IntegerField(default='1')
vectorImage = models.TextField(blank = True, null=True)
parent = models.TextField(default='index')
def __unicode__(self):
return self.name
class Content(Link):
context = models.TextField()
问题在于,当我创建新内容时,它会单独创建链接并单独创建内容。 所以如果我用JSON转移它:
Links.objects.all ...和Content.objects.all,创建1个内容后:
[{
"pk": 1,
"model": "grid.link",
"fields": {
"vectorImage": "",
"level": 1,
"name": "logo",
"parent": "index",
"slug": "logo"
}
}
],
[
{
"pk": 1,
"model": "grid.contexthtml",
"fields": {
"context": "html codez"
}
}
]
这不是我想要的。我希望它发送完整的内容(如上所述,但使用组合字段)。 我该如何解决? 我
答案 0 :(得分:4)
使用abstract base class。这对你有用吗?
class BaseLink(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(unique = True)
level = models.IntegerField(default='1')
vectorImage = models.TextField(blank = True, null=True)
parent = models.TextField(default='index')
def __unicode__(self):
return self.name
class Meta:
abstract = True
class Link(BaseLink):
pass
class Content(BaseLink):
context = models.TextField()