发布于2020-01-16 22:24 阅读(916) 评论(0) 点赞(17) 收藏(0)
认为**renders**
是
def codequestion(request, question_id):
question = Question.objects.get(pk=question_id)
return render(request, 'polls/codequestion.html', {'question': question})
提交时调用的视图是
def codequestion_evaluate(request, question_id):
form = CodeForm()
print request.method
if request.method == 'POST':
form = CodeForm(request.POST)
if form.is_valid():
data = form.cleaned_data
return HttpResponse("Your code is %s" % data['solution'])
else:
return HttpResponse("not valid")
else:
return HttpResponse("Error")
类
from django import forms
class CodeForm(forms.Form):
solution = forms.CharField(widget=forms.Textarea)
模板
<form action="{% url 'codequestion_evaluate' question.id %}" method="post">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Submit" />
</form>
我没有在HTML页面中显示表单字段,我只能看到“提交”按钮。
假定显示未填写表单的视图根本不会创建表单对象。它应该创建一个表单对象,并将其传递给模板,如下所示:
def codequestion(request, question_id):
question = Question.objects.get(pk=question_id)
form = CodeForm()
return render(request, 'polls/codequestion.html', {'question': question, 'form': form})
但是更好的是,您应该遵循Django文档中描述的模式。为此,您应该:
删除codequestion
。所有操作(显示未填写的表单,显示有错误的提交表单,处理正确提交的表单)将由单个视图处理。
配置您的网址路由,以便codequestion_evaluate
视图处理显示未填写表格的页面。
进行更改codequestion_evaluate
,使其遵循以下模式:
def codequestion_evaluate(request, question_id):
if request.method == 'POST':
form = CodeForm(request.POST)
if form.is_valid():
# The form has been submitted and is valid
# process the data and redirect to a "thank you" page
data = form.cleaned_data
return HttpResponseRedirect('/thanks/')
else:
# just display an empty form
form = CodeForm()
# you can optionally add 'question' if you need it in your template
question = Question.objects.get(pk=question_id)
return render(request, 'polls/codequestion.html', {'form': form, 'question': question})
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/226464/2f7c1db368070018d196/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!