添加django管理员多对多小部件

时间:2011-05-19 01:42:40

标签: django django-models django-admin

django admin documentation中,它说明了以下内容:

  

默认情况下,多对多关系的管理窗口小部件将显示在包含对ManyToManyField的实际引用的任何模型上。

是否有办法让其他模型的管理页面上显示类似的小部件,即没有定义关系的模型?

1 个答案:

答案 0 :(得分:0)

有几种不同的方法可以达到你想要的效果。

这是一种方法,可以获得类似(但不完全相同)的效果,并且可能需要最少的编码。 (示例将使用类AB,假设前者具有明确定义的多对多关系)

最快捷的方法:您可以使用InlineModelAdmin对象:

class AInline(admin.TabularInline):
    model = A

class BAdmin(admin.ModelAdmin):
    inlines = (AInline,)
admin.site.register(B, BAdmin)

如果您希望获得<select multiple>完全效果,那么您可以使用自定义Form类,并将其分配给{{1 }}