0
我有一个外键RelationType模型本身:Django的序列化:外键同型号
class TypeManager(models.Manager):
def get_by_natural_key(self, slug):
return self.get(slug=slug)
class RelationType(models.Model):
name = models.CharField(_(u"Name"), max_length=100)
slug = models.SlugField(_(u"Slug"), max_length=100, unique=True)
inverse_relation = models.ForeignKey(
'RelationType', verbose_name=_(u"Inverse relation"),
blank=True, null=True)
objects = TypeManager()
def natural_key(self):
return (self.slug,)
一旦连载它会产生这样的JSON的:
[{
"fields": {
"name": "Has got",
"inverse_relation": [
"is_in"
],
"slug": "has_got"
},
"model": "myapp.relationtype"
},
{
"fields": {
"name": "Is in",
"inverse_relation": [
"has_got"
],
"slug": "is_in"
"model": "myapp.relationtype"
}]
这在逻辑上不适合Django:
DeserializationError: Problem installing fixture 'myfixture.json': RelationType matching query does not exist.
有没有一种方法可以明智地管理这个问题?
也许不相关的问题,但外键应该使用'''self'''定义。请参阅[doc](https://docs.djangoproject.com/en/dev/ref/models/fields/#foreignkey)。 – mimo
确实没有解决问题。但是,谢谢你的评论。在使用模型的子类时,使用'self''很有趣。 –