【问题标题】:Django admin display the instances of a model filtered by a fieldDjango admin 显示由字段过滤的模型实例
【发布时间】:2018-10-28 14:09:53
【问题描述】:

我想在 django 管理员中提供一个基于模型但按标准过滤的视图。

这里以更新日期为例,用户可以对模型所做的更改进行汇总。

我在 admin.py 中注册了 ModelAdmin,但我需要如何继续:

  • 使用列表过滤器创建新的 ModelAdmin?
  • 扩展模板 change_list.html 或新建一个

我希望用户能够选择一个日期来跟踪模型实例已更改。

提前感谢您提供有关此内容的任何链接、课程和示例。我找到了如何与管理员一起玩的唯一基本示例。

【问题讨论】:

    标签: django django-templates django-admin


    【解决方案1】:

    你可以做的是......在你的应用程序中admin.py

    from app.models import YourModel
    class YourModelAdmin(admin.ModelAdmin):
    ....list_display = ("field1","field2","updated","timestamp")
    ....list_filter = ("updated","timestamp") 
    ....class Meta:
    ........model= YourModel
    admin.site.register(YourModel,YourModelAdmin)
    

    【讨论】:

    • 感谢您的帮助。但是如何通过链接直接从 index.html 打开这个页面呢?当您单击 index.html 中定义如下的模型时,我会看到该链接:{{ model.name }} 我看到了过滤器的网址:/admin/MyApp/MyModel/?updated__gte=2018-05-18+00%3A00%3A00%2B00%3A00&updated_It=2018-05-19+00%3A00%3A00 %2B00%3A00 我是否可以从 index.html 中定义额外的操作,例如为过滤视图提供传递参数?
    【解决方案2】:

    感谢您的帮助。但是如何通过链接直接从index.html打开这个页面呢?

    当您单击 index.html 中定义如下的模型时,我会看到该链接:

    <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
    

    我看到了过滤器的网址:

    /admin/MyApp/MyModel/?updated__gte=2018-05-18+00%3A00%3A00%2B00%3A00&updated_It=2018-05-19+00%3A00%3A00%2B00%3A00
    

    我是否可以从 index.html 中定义额外的操作,例如为过滤器视图提供传递参数?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 2013-08-28
      • 2011-03-07
      • 2020-03-19
      • 1970-01-01
      • 2021-10-18
      • 2018-02-07
      相关资源
      最近更新 更多