【问题标题】:Django admin list_filter duplicateDjango admin list_filter 重复
【发布时间】:2012-03-30 02:07:54
【问题描述】:

无论如何要在其他视图中使用 Django 的“list_filter”功能?

【问题讨论】:

    标签: django django-models django-admin django-templates django-admin-filters


    【解决方案1】:

    一个有趣的外部应用程序允许您配置过滤器是django-filter。实际上它比 django admin list_filter 强大得多。

    Django-filter 是一个可重用的 Django 应用程序,允许用户 动态过滤查询集。它需要 Python 2.4 或更高版本。为了 使用和安装说明请查阅docs目录。

    Django-filter 可用于生成类似于 Django 管理员的list_filter 接口。它有一个非常相似的 API 到 Django 的ModelForms。例如,如果您有一个 Product 模型 你可以用代码为它设置一个过滤器:

    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})
    

    有关详细信息,请参阅docs 目录。

    幕后有一个非常棒的 AP​​I,所以真的很有趣。

    【讨论】:

    • 这似乎是一个很好的解决方案!我要试试看。谢谢!
    猜你喜欢
    • 2012-04-06
    • 2015-01-08
    • 2016-06-02
    • 2015-03-16
    • 2012-02-19
    • 2012-10-18
    • 2020-09-20
    • 2018-06-25
    • 2011-01-16
    相关资源
    最近更新 更多