[英]django don't show form in template
django 不在我的模板中显示我的表单 问题出在哪里?
forms.py
from django import forms
class QuestionForm(forms.Form):
massage = forms.CharField(widget=forms.TextInput)
视图.py
from cheatexam_question.forms import QuestionForm
def newquestion(request):
if request.method == 'POST':
form = QuestionForm(request.POST)
context = {
'form': form
}
return render(request, 'homepage.html', context)
模板
<form method="post">
{% csrf_token %}
{{ form }}
<input class="btn btn-warning form-control" type="submit" value="ثبت سوال">
</form>
GET 请求用于检索页面,而 POST 请求用于提交表单。 这里只在 POST 请求中构造一个表单。 对于 GET 请求,您甚至没有定义context
,因此会引发错误。
from cheatexam_question.forms import QuestionForm
def newquestion(request):
if request.method == 'POST':
form = QuestionForm(request.POST)
# …
else: # GET request
form = QuestionForm()
context = {
'form': form
}
return render(request, 'homepage.html', context)
在 request.post 之前采取这样的形式:
def newquestion(request):
form = QuestionForm(request.POST or None)
if form.is_valid():
.
.
context = {'form':form}
retrun render(request , 'template.html' , context)
注意:上下文和返回不在“if”块中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.