【问题标题】:adding django admin many-to-many widget添加 django admin 多对多小部件
【发布时间】:2011-08-28 12:23:28
【问题描述】:

django admin documentation 中,它说:

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

有没有办法让类似的小部件出现在另一个模型的管理页面上,即未定义关系的模型?

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    有几种不同的方法可以达到您所追求的效果。

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

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

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

    如果您想要获得<select multiple>精确 效果,可以使用自定义Form 类,并将其分配给BAdmin.form

    【讨论】:

      猜你喜欢
      • 2011-07-20
      • 2012-06-09
      • 2012-09-02
      • 2013-09-28
      • 1970-01-01
      • 2015-11-08
      • 2015-08-28
      • 2016-02-23
      • 1970-01-01
      相关资源
      最近更新 更多