1

我希望 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 个 Content 后:

 [{
        "pk": 1,
        "model": "grid.link",
        "fields": {
            "vectorImage": "",
            "level": 1,
            "name": "logo",
            "parent": "index",
            "slug": "logo"
        }
    }
],
[
    {
        "pk": 1,
        "model": "grid.contexthtml",
        "fields": {
            "context": "html codez"
        }
    }
]

那不是我想要的。我希望它发送完整的内容(如上,但带有组合字段)。我该如何解决?一世

4

1 回答 1

4

使用抽象基类。这对你有用吗?

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()
于 2012-11-21T12:30:59.263 回答