【问题标题】:Redirect to the filtered list in Django Admin重定向到 Django Admin 中的过滤列表
【发布时间】:2020-03-17 08:47:48
【问题描述】:

假设,我有一个modelA和modelB,它与modelA有ForeignKey关系

在 Django Admin 的任何 modelA 对象页面上,我想要一个链接到与该 modelA 实例有关系的 modelB 实例的过滤列表。

例如:

来自/admin/my_app/modelA/1/change/,我想访问/admin/my_app/modelB/?modelA__id__exact=1

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    创建包含过滤器的管理员更改视图的完整 URL:

    1. 反转网址

    根据https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#reversing-admin-urls中的列表 您可以从模型和应用标签动态创建 URL。

    这是模式:{{ app_label }}_{{ model_name }}_changelist

    在你的情况下:

    change_url = reverse('admin:myapp_modelb_change')
    

    编辑:我删除了下划线并将型号名称小写。我不确定应用名称中的下划线。就我而言,我没有使用下划线 - 反转对我有用。

    1. 添加过滤参数

    与所有常规的reverse() 调用一样,将参数添加到kwargs 关键字参数列表中。

    在你的情况下:

    change_url = reverse('admin:myapp_modelb_change', kwargs={'modelA__id__exact': 1})
    

    【讨论】:

      猜你喜欢
      • 2010-10-15
      • 2018-04-28
      • 2012-05-11
      • 2018-05-08
      • 2011-08-30
      • 2021-01-20
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      相关资源
      最近更新 更多