我有一个带表单的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
存在冲突吗?
非常感谢任何帮助。
答案 0 :(得分:1)
好吧,从该片段开始,如果找到会话数据,那么您将完全重新初始化表单:现在已经处理了包含POST数据和任何错误的原始验证实例。据推测,如果请求不是POST,您只想输入第二个if
。