ajax – Django会话持续但丢失数据
发布时间:2020-12-16 01:34:22 所属栏目:百科 来源:网络整理
导读:我已经工作了几个小时试图理解以下问题:我有一个用户发送Ajax请求动态发送一个表单并记录提交时读取的表单数量增加.为此,我使用request.session [‘editing_foo’] = {‘prefix_of_form_elements’:pkey},以便我可以将它们与数据库关联以进行保存和加载(-1
我已经工作了几个小时试图理解以下问题:我有一个用户发送Ajax请求动态发送一个表单并记录提交时读取的表单数量增加.为此,我使用request.session [‘editing_foo’] = {‘prefix_of_form_elements’:pkey},以便我可以将它们与数据库关联以进行保存和加载(-1表示尚未保存的新表单).
但是,当我使用以下代码(见下)时,我得到以下奇怪的输出: 第一次点击: {} foousername next_key 1 1 {u'1-foo': -1} 第二次点击: {} foousername next_key 1 1 {u'1-foo': -1} 第三次请求: {} foousername next_key 1 1 {u'1-foo': -1} 到底他妈发生了什么? id_fetcher = re.compile(r'd') @login_required def ajax_add_foo(request): def id_from_prefix(key): return int( id_fetcher.search(key).group(0) ) if 'editing_foos' not in request.session: print "reinitializing" request.session['editing_foos'] = {} print request.session['editing_foos'],request.user keys = request.session['editing_foos'].keys() if len(keys) == 0: next_key = 1 else: print [ id_from_prefix(key) for key in keys ] next_key = max([ id_from_prefix(key) for key in keys ]) + 1 print "next_key",next_key fooform = FooForm(prefix=next_key) print next_key request.session['editing_foos'].update( {create_prefix(FooForm,next_key) : -1 } ) # This quote is new and has no pkey print request.session['editing_foos'] return render_to_response( 'bar/foo_fragment.html',{'fooform' : fooform,},context_instance=RequestContext(request)) 非常感谢你们! 注意:这是关于相同源代码的previous question的后续内容.
我不认为我完全理解这个问题,但你可能想看一下你正在使用的
session engine
如果您正在使用缓存会话引擎,则需要确保正确设置缓存(例如,虚拟缓存只会丢弃您的会话数据) 另一种可能性是你的会话没有被保存,因为你没有改变会话,你正在改变存储在会话中的可变对象.您可以通过在视图中的某处添加此内容来尝试forcing the session to save: request.session.modified = True (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |