Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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模板:使用include传递表单模板;如何填写表格?_Django_Templates - Fatal编程技术网

Django模板:使用include传递表单模板;如何填写表格?

Django模板:使用include传递表单模板;如何填写表格?,django,templates,Django,Templates,我只想创建一个表单,将其放入模板中,然后使用include关键字将其包含在my home.html文件中 我做错了什么 # forms.py class OrderForm(forms.Form): from_email = forms.EmailField(required=True) subject = forms.CharField(required=True) message = forms.CharField(widget=forms.Textarea, req

我只想创建一个表单,将其放入模板中,然后使用include关键字将其包含在my home.html文件中

我做错了什么

# forms.py
class OrderForm(forms.Form):
    from_email = forms.EmailField(required=True)
    subject = forms.CharField(required=True)
    message = forms.CharField(widget=forms.Textarea, required=True)

# views.py
def orderView(request):
    template = 'orders.html'
    if request.method == 'GET':
        form = OrderForm()
    else:
        form = OrderForm(request.POST)
        if form.is_valid():
            subject = form.cleaned_data['subject']
            from_email = form.cleaned_data['from_email']
            message = form.cleaned_data['message']
            try:
                send_mail(subject, message, from_email, ['admin@example.com']
            except BadHeaderError:
                return HttpResponse('Invalid header found.')
            return redirect('success')
    return render(request, 'orders.html', {'form': form})


<!-- templates/orders.html -->
<form method="post">
  {% csrf_token %}
  {% form.as_p %}
  <button type="submit" class="btn btn-primary">Send</button>
</form>

<!-- templates/home.html -->
...
<div class="orders">
    {% include 'orders.html' %}
</div>
...
#forms.py
类订单(forms.Form):
from_email=forms.EmailField(必需=True)
subject=forms.CharField(必选=True)
message=forms.CharField(widget=forms.Textarea,required=True)
#views.py
def orderView(请求):
模板='orders.html'
如果request.method==“GET”:
form=OrderForm()
其他:
表单=订单(request.POST)
如果form.is_有效():
主题=表单。已清理的_数据['subject']
from_email=表单.已清理的_数据['from_email']
message=表单。已清理的_数据['message']
尝试:
发送邮件(主题、消息、来自电子邮件,['admin@example.com']
除BadHeaderError外:
返回HttpResponse('找到无效标头')
返回重定向('成功')
返回呈现(请求'orders.html',{'form':form})
{%csrf_令牌%}
{%form.as_p%}
发送
...
{%include'orders.html%}
...

使用
{{form.as{p}}
而不是
{%form.as{p%}
。并从视图中呈现
home.html
以使
包含
工作。不要忘记按如下方式传递表单:


{%include'orders.html',form=form%}
{{form.as\u p}}而不是{%form.as\u p%}我更改了
{form.as\u p}}
和上面orderView函数的render语句中的render home.html。如果是这样,我做了两个更改,但仍然无法工作