【发布时间】:2011-08-28 12:23:28
【问题描述】:
在django admin documentation 中,它说:
默认情况下,多对多关系的管理小部件将显示在包含对 ManyToManyField 的实际引用的任何模型上。
有没有办法让类似的小部件出现在另一个模型的管理页面上,即未定义关系的模型?
【问题讨论】:
标签: django django-models django-admin
在django admin documentation 中,它说:
默认情况下,多对多关系的管理小部件将显示在包含对 ManyToManyField 的实际引用的任何模型上。
有没有办法让类似的小部件出现在另一个模型的管理页面上,即未定义关系的模型?
【问题讨论】:
标签: django django-models django-admin
有几种不同的方法可以达到您所追求的效果。
这是一种方法,可以为您带来类似(但不相同)的效果,并且可能需要最少的编码。 (示例将使用类A 和B,假设前者明确定义了多对多关系)
最快的方法:你可以使用InlineModelAdmin 对象:
class AInline(admin.TabularInline):
model = A
class BAdmin(admin.ModelAdmin):
inlines = (AInline,)
admin.site.register(B, BAdmin)
如果您想要获得<select multiple> 的精确 效果,可以使用自定义Form 类,并将其分配给BAdmin.form。
【讨论】: