[英]dealing with self-referential foreign keys; django mixer
我收到了使用伪对象自引用FK测试django的典型运行时错误:
In [12]: from mixer.backend.django import mixer
In [13]: x = mixer.blend(ItemGroup)
/home/cchilders/.virtualenvs/clientsite/lib/python3.4/site-packages/django/db/models/fields/related.py in __set__(self, instance, value)
587 raise ValueError(
588 'Cannot assign None: "%s.%s" does not allow null values.' %
--> 589 (instance._meta.object_name, self.field.name)
590 )
591 elif value is not None and not isinstance(value, self.field.rel.to):
ValueError: Mixer (<class 'clientsite.gacl.models.AroGroup'>): Cannot assign None: "AroGroup.parent" does not allow null values.
该模型:
class ItemGroup(models.Model):
parent = models.ForeignKey('self', db_column='parent_id')
name = models.CharField(max_length=255)
value = models.CharField(max_length=255, unique=True)
class Meta:
db_table = u'item_groups'
def __str__(self):
return self.value
def __repr__(self):
return '<{} {}: {}>'.format(self.__class__.__name__, self.pk, self.value)
文档很少将自己称为FK。 您如何使用django混合器伪造一个需要自身实例的实例? 谢谢
尝试将null=True
添加到parent
字段的声明中。 必须至少有一个没有父项的顶级ItemGroup
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.