【问题标题】:How to filter data in Django admin without returning a queryset?如何在不返回查询集的情况下过滤 Django admin 中的数据?
【发布时间】:2017-04-10 03:06:22
【问题描述】:

我需要使用 python 过滤数据,然后像这样将结果(过滤对象列表)返回到管理页面。

class MyFilter(admin.SimpleListFilter):

  def queryset(self, request, queryset):
      if self.value() == 'delayed_orders':
          filtered_objects = filter(queryset)
          return filtered_objects

这是否可以使用 admin.SimpleListFilter 或者我们总是需要返回一个查询集?

【问题讨论】:

    标签: django django-admin django-admin-filters


    【解决方案1】:

    简要查看django/contrib/admin/views/main.py(例如ChangeList.get_queryset)后,很明显它期望某些行为类似于查询集。

    如果值得麻烦,您可以尝试编写一个包装/扩展列表的类,并公开与 QuerySet 相同的方法,或者寻找现有的实现。

    【讨论】:

      猜你喜欢
      • 2011-02-06
      • 1970-01-01
      • 2016-07-28
      • 2018-12-01
      • 2019-02-17
      • 2020-11-14
      • 2019-03-26
      • 2011-01-12
      • 2018-06-05
      相关资源
      最近更新 更多