将django _session_key
存储在另一个模型中作为特定会话的标识符是一个好主意。
我正在使用django _session_key
在视图中存储一个唯一的会话,然后我将_session_key
保存在另一个对象中。
def myview(request):
if request.method == "POST":
myform = Myform(request.form)
if myform.is_valid():
name = myform.cleaned_data['name']
title = myform.cleaned_data['title']
author_session = request.session._session_key
# Creating a model object
model1(name=name, title=title, author_session=author_session).save()
return HttpResponseRedirect(reverse('myview2',
kwargs={'name':model1.name}))
else:
# Some renders
else:
# Some other renders
def myview2(request, name):
obj1 = model1.objects.get(name=name)
if request.session._session_key == obj1.author_session:
# Some render
else:
# Some other render
现在,我认为将_session_key
用作不同视图之间会话的唯一标识是个好主意。有没有其他方法可以识别视图之间的唯一会话?
P.S-我读过使用_session_key
通常被忽视。
另外,请建议如何为视图之间的会话编写测试
答案 0 :(得分:2)
不,这完全是倒退。您应该在第一个视图中将model1实例的键存储在会话中,并在第二个视图中将其存取。