Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django包括但不包括内容_Django_Forms_Templates_Tags_Include - Fatal编程技术网

Django包括但不包括内容

Django包括但不包括内容,django,forms,templates,tags,include,Django,Forms,Templates,Tags,Include,我想使用{%include%}在页面上包含第二个表单,但表单为空 views.py: def year_form(request): thing_list = Thing.objects.all() if request.method == 'POST': form = YearBrowseForm(request.POST) if form.is_valid(): year = form.cleaned_data['yea

我想使用
{%include%}
在页面上包含第二个表单,但表单为空

views.py:

def year_form(request):
    thing_list = Thing.objects.all()
    if request.method == 'POST':
        form = YearBrowseForm(request.POST)
        if form.is_valid():
            year = form.cleaned_data['year']
            return HttpResponseRedirect(reverse('browse_years', kwargs={'year':year}))
    else:
        form = YearBrowseForm()
    return render(request, 'browse-year.html', {'form':form, 'thing_list':thing_list})
forms.py:

class YearBrowseForm(forms.Form):
    year = forms.ChoiceField(choices=YEARS_EMPTY, widget=forms.Select(attrs={'onchange': 'this.form.submit();'}))
网址:

浏览-year.html:

<form action='' method='post' enctype='multipart/form-data'>
  {{ form.as_p }}
  {% csrf_token %}
</form>

{{form.as_p}}
{%csrf_令牌%}

这将呈现一个空表单(即,源代码显示包含一个表单,但它没有内容)。我错过了什么?这是我试图通过使用
{%include%}
以另一种方法解决的问题的继续。谢谢你的想法

发生这种情况是因为您正在呈现
browse year.html

return render(request, 'browse-year.html', {'form':form, 'thing_list':thing_list})
您应该呈现另一个html,即您没有给出名称但以开头的html

{% extends 'base.html' %}

只有通过呈现其中一个,您才能扩展基础,并显示其他内容。

您的
base.html
是否具有
{%block content%}
?谢谢@karthikr。是的,我的
base.html
{%block content%}
。还有什么我可能遗漏的吗?谢谢你的想法如果你把
browse year.html
的上下文放在
browse.html
中,它能工作吗?嗯,其实并不奇怪。当我在视图中同时使用这三个表单时,这个表单就出现了,就像我在文章底部链接的另一个问题一样。我没有更改表单或其他任何内容,只是尝试设置一个不同的视图(如上所示)来处理表单,因为在一个视图中使用所有三个表单时遇到了困难。谢谢你的建议!能否将上下文传递给
render
方法并查看?另外,生成的HTML是否有
谢谢@J.C.,我改为
返回呈现(请求,'browse.HTML',{'form':form,'thing_list':thing_list})
(browse.HTML是我的主模板),但我仍然得到一个空表单。还有什么我可能遗漏的吗?
return render(request, 'browse-year.html', {'form':form, 'thing_list':thing_list})
{% extends 'base.html' %}