Django加载初始数据可防止显示错误

时间:2013-01-10 21:06:11

标签: django django-forms django-views

我有一个带表单的Django页面。我有一些视图代码可以正常处理表单,但是如果可用,则使用用户会话中的初始数据预填充表单。这样当用户返回到此表单时,他们会看到以前选择的选项(是的,表单非常广泛)。

我的观点,py:

def myView(request):   
    ...
    form = ProjectInfoForm(request.POST or None)
    if form.is_valid():
        # process form, including a redirect
        ...

    # if there is form data in the session, let's use that
    # to initaliaze our from with data
    if key in request.session:
        form = ProjectInfoForm(
            initial={
                 'model': request.session.get('model'),
                 ...
            }
        )
    return render_to_response(template_name, {
        ...
    }, RequestContext(request))

问题是:如果我加载会话数据,那么页面不会显示任何错误消息。表单确实无法验证,我只是没有得到任何输出。这里与initial存在冲突吗?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

好吧,从该片段开始,如果找到会话数据,那么您将完全重新初始化表单:现在已经处理了包含POST数据和任何错误的原始验证实例。据推测,如果请求不是POST,您只想输入第二个if