【问题标题】:Django: Create Additional ModelAdmin pages loaded by admin actionDjango:创建由管理操作加载的其他 ModelAdmin 页面
【发布时间】:2016-07-21 10:24:59
【问题描述】:

我找到了说明如何编辑 ModelAdmin 的文档,但我需要一个可以从操作中加载的新文档,如下所示:

我有一个名为广告系列的模型 我有一个名为 ads 的模型

我当然可以从管理员那里查看广告,它会给我一个完整的、分页的所有广告列表。我希望能够在广告系列管理视图上创建一个操作,该操作将加载广告管理视图但带有广告系列 ID,以便我只能看到特定广告系列的广告。

我可以创建一个自定义视图并将其作为管理员的操作调用,但这当然需要大量工作。我希望广告列表看起来像广告的标准管理员视图。

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    如果您想要的是按广告系列过滤广告的功能,则无需为此创建特殊的管理员/操作,只需正确配置广告管理员的list_filter,即(假设AdsCampaign 上有一个ForeignKey):

    class AdsAdmin(ModelAdmin):
        # ...
        list_filter = ["campaign", ]
    

    如果您想使用Campaign 的某些特定字段在过滤器侧边栏中显示(这里我们假设Campaign 作为name 字段):

    class AdsAdmin(ModelAdmin):
        # ...
        list_filter = ["campaign__name", ]
    

    还请注意,您也可以使用InlineModelAdminCampaign 的更改表单上管理广告系列的广告,这通常是更好的主/从关系用户界面(并且它不会阻止您保留@987654334 @admin 获取全局且可过滤的概览)。

    【讨论】:

      猜你喜欢
      • 2017-10-03
      • 2013-02-16
      • 2021-04-29
      • 2013-10-09
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2011-09-25
      相关资源
      最近更新 更多