如何设置Django过滤器以选择全部

时间:2016-07-02 06:20:35

标签: python django

我在Django中有一个视图,它将读取get请求及其参数,并根据参数进行查询。目前我的观点如下:

<li>

但有时,未指定其中一个参数。我希望这会产生一个代表'all'而不是单个值的值。这是否可能以我的方式完成?我尝试了#page { list-style: none; counter-reset: newCounter; padding: 0 0 0 20px; overflow: visible; } #page > .top-list h1 { display: list-item; } #page > .top-list h1:before { counter-increment: newCounter; content: counters(newCounter, ".")" "; } .inner { list-style: none; counter-reset: newCounter; padding: 0 0 0 20px; overflow: visible; } .inner > h2 { display: list-item; } .inner > h2:before { counter-increment: newCounter; content: counters(newCounter, ".")" "; },但这只会产生一个空列表。

1 个答案:

答案 0 :(得分:3)

只有在想要过滤某些内容时才需要应用过滤器。你可以这样做:

# Start off with a base queryset
available = Item.objects.all()

allowed_filters = ['category', 'gender', 'size']
for f in allowed_filters:
    if request.GET.get(f):
        available = available.filter(**{f: request.GET[f]})

data = serializers.serialize('json',available)
return HttpResponse(data,'json')

也就是说,在将输入传递给查询集之前,您可能需要考虑使用Forms API来验证输入。