Django admin list_filter重复

时间:2012-03-13 16:27:40

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

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

1 个答案:

答案 0 :(得分:1)

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

  

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

     

Django-filter可用于生成类似于的接口   Django admin的list_filter界面。它的API非常相似   到Django的ModelForms。例如,如果您有产品型号   你可以使用代码:

来获得它的过滤器
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目录。

幕后有一个非常好的API,所以它真的很有趣。