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 に答える