我有一个模型,我改为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