嗨Stackoverflow人,
在我的Django项目中,我创建了一个注册用户的表单。可以通过特定网址调用此表单 - >查看方法。一旦用户填写了表单,按下提交,将调用相同的视图方法,如果form.is_valid()为true,那么......只是一个标准表单,没什么特别的。
现在,我想在每个页面上集成这个小表单,因此我想将它添加到基本模板中。我已经读过我可以通过context_processor填充表单变量,但是我可以在提交表单后定义进程吗?
我创建了context_processor.py(如下所示),将context_processor添加到设置中的TEMPLATE_CONTEXT_PROCESSOR dir中(如here所述):
from app.forms import Form
def registration_form(request):
return {
registration_form : Form()
}
首先,不会显示表单变量。 其次,我如何操纵表单提交?
我认为我误解了Django的context_processor,并且对整个过程的评论感到非常高兴。
谢谢!
答案 0 :(得分:3)
您是如何尝试访问模板中的表单的?你可能不想使用函数名作为你的字典键,也许你想要
return {
'registration_form': Form(),
}
通过操作表单提交不确定你的意思,但我想你需要在上下文处理器中使用所有表单处理逻辑
if request.POST:
form = Form(request.POST)
# validate etc
答案 1 :(得分:0)
而不是创建上下文处理器,为此目的创建模板标记并将标记放在base.html
中表单提交和显示错误使用ajax和前端验证。