Django:基本模板中的表单

时间:2011-11-22 08:54:16

标签: django forms templates

嗨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,并且对整个过程的评论感到非常高兴。

谢谢!

2 个答案:

答案 0 :(得分:3)

您是如何尝试访问模板中的表单的?你可能不想使用函数名作为你的字典键,也许你想要

return {
    'registration_form': Form(),
}

通过操作表单提交不确定你的意思,但我想你需要在上下文处理器中使用所有表单处理逻辑

if request.POST:
    form = Form(request.POST)
    # validate etc

答案 1 :(得分:0)

而不是创建上下文处理器,为此目的创建模板标记并将标记放在base.html

表单提交和显示错误使用ajax和前端验证。