3

我正在寻找有关如何让我的 Django 项目管理员同时使用 treeadmin 拖放 thingy 和 mptt 模型的帮助。

开箱即用一切正常,但是当我在 admin.py 中尝试此操作时:

class ItemInline(TreeAdmin):
    model = MenuItems

class MenuAdmin(admin.ModelAdmin):
    model = Menu
    inlines = (ItemInline, )

admin.site.register(Menu, MenuAdmin)

我收到一个错误:类型对象“ItemInline”没有属性“fk_name”。

现在,这个 fk_name 到底是什么,我如何将它添加到 ItemInLine?

这也是我的模型,以防它与任何事情有关:

class Menu(MPTTModel):
        name = models.CharField(max_length = 100)

        def __unicode__(self):
                return self.name

class MenuItems(MPTTModel):
        menu = models.ForeignKey(Menu)
        name = models.CharField(max_length=50, unique=True)
        parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
        target = models.ForeignKey(Pages,null=True, blank=True)

        class MPTTMeta:
                order_insertion_by = ['name']

        def __unicode__(self):
                return self.name
4

1 回答 1

4

您不能只是将任何随机管理类变成内联。它实际上必须从InlineModelAdmin类继承,而TreeAdmin它显然不是。

您可以尝试通过使用 InlineModelAdmin 作为 mixin 来解决此问题 - 这可能有效:

class ItemInline(TreeAdmin, InlineModelAdmin):
于 2012-09-09T09:17:03.803 回答