繁体   English   中英

model_mommy打破了django-mptt

[英]model_mommy breaks django-mptt

我使用model_mommy创建的实例MPTTModel在我的测试,但看起来它打破了由MPTT管理树:

>>> parent = mommy.make(Category)
>>> child = mommy.make(Category, parent=parent)
>>> parent.get_descendants()
[]

不使用model_mommy的相同工作原理:

>>> parent = Category(name=u'Parent')
>>> parent.save()
>>> child = Category(name=u'Child', parent=parent)
>>> child.save()
>>> parent.get_descendants()
[<Category: Child>]

我怀疑问题是model_mommy为tree_idlftrghtlevel提供随机值,这些是必填字段,但应由MPTT处理。

有没有办法告诉模特妈妈根本不填写这些字段? 或者这些字段的默认值是否会破坏MPTT的保存算法?

事实证明,如果lftrght具有真值,则MPTTModel.save认为该节点已经设置好。 因此,将这些字段设置为None足以修复树更新。

我创建了一个我在测试中随处可见的妈妈食谱,所以我不必记得设置这些字段:

category_recipe = Recipe(Category, lft=None, rght=None)

然后在测试用例中: category_recipe.make()而不是mommy.make(Category)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM