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