django:过滤对象列表

标签 django url filtering

我有一个要列出的对象列表(在本例中为出租特性),该列表需要通过一些标准(最高价格、面积、n_bedrooms ...)进行过滤,我想我可以这样做:

(r'^price:(?P<price_min>\d+)?-(?P<price_max>\d+)?/$', property_list)

这很有效,并且允许像price:300-600/这样的URL来做明智的事情。

但是,当有大约六个属性可供过滤时,它会变得很笨拙,并且理想情况下我想要干净的网址(即不包括我们当前未在网址中过滤的属性)

Django 中有处理这个问题的“标准”方法吗?

最佳答案

在 django 中执行此操作的正确方法是 Alex Gaynor,呃 django-filter通过 Alex Gaynor

它允许您以 http get 的方式获取过滤器参数,并根据这些约束过滤您的查询集。

来自文档:

import django_filters

class ProductFilterSet(django_filters.FilterSet):
    class Meta:
        model = Product
        fields = ['name', 'price', 'manufacturer']

然后在你看来你可以这样做::

def product_list(request):
    filterset = ProductFilterSet(request.GET or None)
    return render_to_response('product/product_list.html',
        {'filterset': filterset})

关于django:过滤对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154535/

相关文章:

android - OkHttp 不断收到 StreamResetException : stream was reset: INTERNAL_ERROR when it's 200

python - 找不到 '' 的反向。 '' 不是有效的 View 函数或模式名称

Ansible - 过滤字典值

Django:制作具有未定义字段数的模型

jsf - 用于链接/导航到其他 JSF 页面的 URL

android - 从 URL 获取 HTML 源代码

url - 如何使用主干在集合和模型中创建动态 url

javascript - 代码审查 : Deep filter array of objects concisely in Javascript

ios - Swift 3 - 基于字符串变量的过滤数组

Jquery AutoComplete 返回 [object Object]