我的Django应用程序有一个名为Treenode的模型,它通过子类化MPTTModel
(版本0.6.1)来实现树。模型如下:
from mptt.models import MPTTModel, TreeForeignKey
class Treenode(MPTTModel):
name = models.CharField(max_length=255)
parent = TreeForeignKey('self', null=True, blank=True)
class MPTTMeta:
order_insertion_by = ['name']
def __unicode__(self):
return "%s (#%s)" % (self.name, self.pk)
现在看看当我开始创建此模型的实例时会发生什么:
^{pr2}$你看到虫子了吗?x
与{C
是{
我做了大量的实验来隔离和识别这个问题。我发现,如果将实例a
的名称属性从“S”改为“A”,问题就消失了。我还发现,如果从模型中删除嵌套的MPTTMeta
类,问题就消失了。这表明MPTTMeta的order-insertion-by-code有问题。有人能证实这一点或知道是否有解决办法吗?在
作为补充证据,我已经包含了Treenode数据库表的屏幕截图,当我有MPTTMeta(损坏)和删除MPTTMeta(工作)之后,为了比较的目的。在
我刚刚在django mptt中为这个问题提交了a fix。请测试一下!干杯
相关问题 更多 >
编程相关推荐