首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的列表视图中获得类似于管理控制台中的列表筛选器?

如何在我的列表视图中获得类似于管理控制台中的列表筛选器?
EN

Stack Overflow用户
提问于 2018-12-19 08:47:14
回答 1查看 46关注 0票数 0

我正在编写我的第一个django应用程序,在我的一个ListView中将会有成百上千条记录。我希望用户能够过滤结果。管理控制台中的filter小部件对于任何类型的用户看起来都很直观。但问题是,我不确定如何才能让它们出现在我的列表视图中。

我简要地研究了django-filters。但是,我不确定它是否可以帮助我实现类似的功能。

EN

回答 1

Stack Overflow用户

发布于 2018-12-19 15:06:13

我认为你可以这样尝试:

在列表视图的模板中:

代码语言:javascript
复制
<form path="{% url 'your_list_view' %}" method="GET">
    <label for="search">Search: </label>
    <input type="text" name="search">
    <input type="submit" value="OK">
</form>

现在在ListView中使用以下代码:

代码语言:javascript
复制
from django.db.models import Q

class YourListView(ListView):
   search_fields = ['name', 'something_else']
   ...
   def get_querset(self, *args, **kwargs):
       queryset = super(YourListView, self).get_queryset(*args, **kwargs)
       search = request.GET.get('search')
       if search:
          query = list()
          for f in self.search_fields:
              query.append(Q(**{f: search}))
          return queryset.filter(*query)
       return queryset
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53843138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档