Django:表单模板和同一页面上的对象列表

Django:表单模板和同一页面上的对象列表,django,django-models,django-forms,django-templates,Django,Django Models,Django Forms,Django Templates,我正在尝试为具有以下行为的页面设置模板。最初,它将包含一个未填充的表单和某个模型的所有对象的列表。然后,用户可以在表单中输入信息,点击submit后,显示的模型列表将被过滤,以适当地反映提交的请求 我相信我已经正确地设置了所有这些的逻辑;这是此页面的视图: def search(request): objs = Area.objects.all() if request.method == 'POST': form = AreaForm(request.PO

我正在尝试为具有以下行为的页面设置模板。最初,它将包含一个未填充的表单和某个模型的所有对象的列表。然后,用户可以在表单中输入信息,点击submit后,显示的模型列表将被过滤,以适当地反映提交的请求

我相信我已经正确地设置了所有这些的逻辑;这是此页面的视图:

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>
但我有点不知所措,不知如何前进。我将非常感谢任何帮助。谢谢大家!

如果您的obj包含正确的项,您只需添加如下内容

{% for obj in objs %}
<li>{{ obj }}</li>
{% endfor %}
关闭标签后