2

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

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

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

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

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

我的看法如下。

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)
4

0 回答 0