使用request.session的Django form.save(commit = False)

时间:2013-10-10 23:43:12

标签: django-forms django-views django-sessions

我试图在django中使用session来理解form.save(commit = False)。来自文档

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method

提到当你使用form.save(commit = False)时它会返回你的对象,但是还没有保存到数据库中(这对我有好处)。因此,我将对象存储在会话中,然后当我稍后检索它时,我无法检索相同的对象。

我得到一个DoNotExist错误,这是真的,因为我猜它没有存储在数据库中。

有没有办法可以将对象存储在会话中,然后检索更新表单。 或者如果我出错了,任何人都可以指出正确的方向。

我的观点如下。

def create(request):
   if request.POST:
      form = EventForm(request.POST)
      form .save()
      del request.session['event_id']
      return HttpResponseRedirect('/Event')
   else:
      event_session = request.session.get('event_id')
      if event_session is not None:
         event_instance = EiEvent.objects.get(eventID = event_session)
         edit_form = EiEventForm(instance = event_instance)
      else:
         form = EventForm()
         a = form.save(commit=False)
         request.session['event_id'] = a
   args = {}
   args.update(csrf(request))
   args['form'] = form
   return render_to_response('event.html', args)

0 个答案:

没有答案