我正在尝试为具有以下行为的页面设置模板。最初,它将包含未填充的表单和特定模型的所有对象的列表。然后,用户可以在表单中输入信息,并且在点击提交时,将过滤显示的模型列表以适当地反映提交的请求。
我相信我有正确设置所有这些的逻辑;这是此页面的视图:
def search(request):
objs = Area.objects.all()
if request.method == 'POST':
form = AreaForm(request.POST)
if form.is_bound and form.is_valid():
# check if requested number of chairs/tables/etc
# is at most the amount present
# or skip if blank
def check(area, key, val):
attr_val = getattr(area, key)
attr_val is None or attr_val >= val
# filter out those objects which don't have the criteria
for key, val in form.cleaned_data.items:
objs = [area for area in objs if check(area, key, val)]
else:
form = AreaForm()
return render(request, 'SpotMe/search.html', {'form' : form, 'objs': objs})
所以现在(我相信)我只需要设置模板html。到目前为止我所拥有的是:
<form action="" method="GET">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Send message" />
</form>
但我对如何前进感到不知所措。我非常感谢任何帮助。谢谢!
答案 0 :(得分:0)
如果您的objs
包含正确的项目,则只需添加类似
{% for obj in objs %}
<li>{{ obj }}</li>
{% endfor %}
关闭</form>
代码后