我试图在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)