我有一个RelationType模型,它本身有一个外键:
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:
^{pr2}$这在逻辑上不能由Django加载:
DeserializationError: Problem installing fixture 'myfixture.json': RelationType matching query does not exist.
有没有办法明智地处理这个问题?
我想出了一个非常难看的解决方案(如果有人能想出更好的解决方案,我会很高兴的)。在
我首先生成夹具:
然后我使用一些UNIX魔术来消除“自我”关系:
^{pr2}$出于对UNIX魔术的好奇,我用另一个任意字符翻译新行字符,因为
sed
不能执行多行正则表达式。在然后我可以先用
norel
夹具加载两个fixture:相关问题 更多 >
编程相关推荐