我正在寻找一些关于如何让我的 Django 项目管理员同时使用 treeadmin 拖放和 mptt 模型的帮助。
开箱即用,一切正常,但是当我在 admin.py 中尝试此操作时:
class ItemInline(TreeAdmin):
model = MenuItems
class MenuAdmin(admin.ModelAdmin):
model = Menu
inlines = (ItemInline, )
admin.site.register(Menu, MenuAdmin)
Run Code Online (Sandbox Code Playgroud)
我收到错误:类型对象“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
Run Code Online (Sandbox Code Playgroud)
您不能只是将任何随机管理类放入内联类中。它实际上必须从InlineModelAdmin类继承,但无论TreeAdmin它是什么,显然都不是。
您可以尝试使用 InlineModelAdmin 作为 mixin 来修复此问题 - 这可能有效:
class ItemInline(TreeAdmin, InlineModelAdmin):
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5945 次 |
| 最近记录: |