Django模板:使用include传递表单模板;如何填写表格?
我只想创建一个表单,将其放入模板中,然后使用include关键字将其包含在my home.html文件中 我做错了什么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
# 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。如果是这样,我做了两个更改,但仍然无法工作