gpt4 book ai didi

python - 处理自引用外键;模范妈妈

转载 作者:太空宇宙 更新时间:2023-11-03 16:48:18 24 4
gpt4 key购买 nike

我收到使用假对象测试 django 的自引用 FK 的典型运行时错误:

... last 4 frames repeated, from the frame below ...

/home/cchilders/.virtualenvs/clientsite/lib/python3.4/site-packages/model_mommy/mommy.py in make(model, _quantity, make_m2m, **attrs)
96 return [mommy.make(**attrs) for i in range(_quantity)]
97 else:
---> 98 return mommy.make(**attrs)
99
100

RuntimeError: maximum recursion depth exceeded while calling a Python object

型号:

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”。如何伪造一个需要 modelmommy 自身的实例?谢谢

最佳答案

首先,我认为您应该使 parent 字段可为空; parent = models.ForeignKey('self', db_column='parent_id', null=True, Blank=True) 这意味着您将拥有一个可以开始引用的基础对象。

使用模型妈妈,您可以首先创建一个假 parent ,然后将 parent 分配给 child 。

parent_item_group = mommy.make(ItemGroup)
child_item_group = mommy.make(ItemGroup, parent=parent_item_group)

关于python - 处理自引用外键;模范妈妈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com