2

此表单不应发布,它正在获取当前从上一个设置页面保存的内容。但是,在我设置的这一点上:我只是想获取会话信息并保存它。如果用户决定更改他们的信息。

到目前为止我已经尝试过:

  • request.session['form_data'] = user_info_form.cleaned_data只有在form.is_valid()持有时才有效。
  • request.session.get['single_input_variable_name']不适用于列表、字典或元组。

我的下一步行动是什么?

if request.method == 'POST':
...
else:
    profile = Profile.objects.get(user=request.user)
    initial = {}
    initial['first_name'] = request.user.first_name
    initial['last_name'] = request.user.last_name
    initial['email'] = request.user.email
    if profile:
        initial['about'] = profile.about
        initial['country'] = profile.country
    user_info_form = UserInfoForm(initial=initial)
context['user_info_form'] = user_info_form
context['profile'] = profile

提前感谢您的帮助。

4

1 回答 1

1

差不多好了; 尝试

request.session['form_data'] = user_info_form.data

无论表单是否有效,这都会被填充。然后,您可以在后续请求中将其放回表单中:

user_info_form = UserInfoForm(request.session['form_data'])
于 2012-08-16T19:51:16.373 回答