在Admin页面中向django-mptt添加父级会引发错误

时间:2016-10-24 12:16:15

标签: django django-mptt django-1.9

我有一个模型,我改为MPTTModel,看起来像这样

class ServiceRequest(EntityBase, MPTTModel):
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)
    field1 = models.ForeignKey(SomeModel1, blank=True, null=True, verbose_name="model1")
    field2 = models.ForeignKey(SomeModel2, blank=True, null=True, verbose_name="model2")

我在管理页面中将此模型设为内联。

class ServiceRequestsInline(admin.StackedInline):
    model = ServiceRequest
    extra = 0
    fieldsets = (
        (None, {
        'fields': ('parent', 'field1', 'field2',)
        }),
    )
    readonly_fields = ('field2',)

我可以创建一个新模型并保存它 然后我想创建一个新模型并将其父项设置为先前创建的模型。当我这样做并点击“保存”我得到这个

  

/ admin / app / requests / 1 / change /

中的InvalidMove      

节点可能不会成为其后代的子节点。

虽然,我可以创建第二个模型,保存它而不设置父项然后编辑,将父项设置为1-st并成功保存。

我做错了什么?

更新
使用调试器后,我检测到异常引发的位置 - here

更新2 有关EntityBase的信息

class EntityBase(AuthStampedModel):
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True

AuthStampedModel 是django-audit-log软件包的模型 - > here

0 个答案:

没有答案