gpt4 book ai didi

python - KeyError 这表示 key(partner) 不在字典中?

转载 作者:太空宇宙 更新时间:2023-11-03 11:11:15 25 4
gpt4 key购买 nike

我正在尝试使用 python 和 django 制作聊天应用程序。我几乎完成了它,当两个人在特定时间之后聊天时它显示错误时,它可以正常工作 8-10 分钟。

这是回溯:-

Traceback (most recent call last):

File "\Django_chat\django_chat\chat\views.py", line 55, in receive

message = chatSession.getMessage(request.session['partner'],request.session['uid'],afterTime)

File "C:\Python26\lib\site-packages\django\contrib\sessions\backends\base.py", line 47, in __getitem__

return self._session[key]

KeyError: 'partner'

这是接收模块:-

def receive(request):
# message received by this user
chatSession = chat()
data = request.POST
afterTime = data['lastMsgTime']
try:
message = chatSession.getMessage(
request.session['partner'],
request.session['uid'],
afterTime)
except:
#partnerId = virtual_users.objects.get(id=request.session['uid']).partner
print('there is an error in receive request')
traceback.print_exc(file=open("/myapp.log","a"))
msg = serializers.serialize("json", message)
return HttpResponse(msg)

请帮助我:(谢谢安施杰

最佳答案

我假设用户的 session 超时,因此 request.session 中没有 partneruid 值.

session 根据其上的(缺乏)事件而超时。出于过期目的,读取 session 不被视为事件。 Session expiration从上次修改 session 开始计算。默认情况下,Django 只在 session 被修改时保存到 session 数据库——也就是说,如果它的任何字典值被分配或删除。要更改此默认行为,请将 SESSION_SAVE_EVERY_REQUEST 设置设置为 True。如果 SESSION_SAVE_EVERY_REQUEST 为 True,Django 将在每次请求时将 session 保存到数据库中。

关于python - KeyError 这表示 key(partner) 不在字典中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2903329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com