【发布时间】:2017-08-22 21:04:54
【问题描述】:
我正在使用django-filter 搜索模型。代码如下:
filters.py:
class PersonFilter(django_filters.FilterSet):
lastName = django_filters.CharFilter(lookup_expr='icontains')
firstName = django_filters.CharFilter(lookup_expr='icontains')
class Meta:
model = Person
fields = ['lastName', 'firstName']
views.py:
def search(request):
people = Person.objects.all()
people = PersonFilter(request.GET, queryset=people)
context = {'filter': people}
return render(request, 'myapp/template.html', context)
模板.html:
<form method="get">
{{ filter.form.as_p }}
<button type="submit">Search</button>
</form>
<table>
{% for field in filter.qs %}
<tr>
<td>
{{ field.idno }}
</td>
<td>
{{ field.lastName }}
</td>
<td>
{{ field.firstName }}
</td>
<td>
{{ field.status }}
</td>
</tr>
{% endfor %}
</table>
{% endblock %}
</body>
</html>
现在,这会生成一个与我的模型相似的表格,其中包含名字和姓氏的搜索框。搜索工作完美。
如何防止数据表最初显示?从逻辑上讲,这可以在表面上完成(隐藏),或者更好的是,实质上(动态创建查询集)。这可能吗?
【问题讨论】:
标签: python django python-3.x django-filter