我正在寻找一些关于如何让我的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
答案 0 :(得分:4)
您不能将任何随机管理类放入内联。它必须实际上从InlineModelAdmin
类继承,而且TreeAdmin
显然没有。
您可以尝试使用InlineModelAdmin作为mixin来解决此问题 - 可能工作:
class ItemInline(TreeAdmin, InlineModelAdmin):