Django为没有类/模型的视图添加下拉过滤器

时间:2018-09-04 08:32:21

标签: python django filter view dropdown

我有一个方法映射到urls.py中的网址:

urlpatterns = [
    url(r'^mydir/statistics', statistics_view, name="Statistics")
]

然后在mydir/statistics/views.py中,我有以下方法:

def statistics_view(request):
    list_mystuff = Mytable.objects.all() #Mytable is defined in models
    ....
    #lots of code here to assign "enriched_models" data structure
    enriched_models = {bunch of stuff}
    ......
    return render(request, 'statistics.html', {"statistics_enriched_models": enriched_models})

一切正常,所有内容都使用statistics.html模板呈现。

现在,我需要通过Mytable的字段之一实现下拉过滤器。 对于类,我将不得不在models.py中创建Statistics的类,在admin.py中将StatisticsAdmin作为代理模型,将它们都注册,并拥有 list_filter=["myfield",]在StatisticsAdmin中设置

是否有一种方法可以设置下拉列表过滤器(使用list_filters或其他方法),并直接创建下拉列表而不创建类,而仅使用已有的类(填充模板的方法)?

1 个答案:

答案 0 :(得分:0)

更新

最后,我使用了django-filter工具:https://django-filter.readthedocs.io/en/master/index.html

用于下拉控件的过滤器是django_filters.ChoiceFilter。 很好