【问题标题】:Using Django session key to use request sessions between views使用 Django 会话密钥在视图之间使用请求会话
【发布时间】:2014-06-27 01:30:43
【问题描述】:

将 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 通常被忽略。

另外请建议如何为视图之间的会话编写测试

【问题讨论】:

    标签: python django session django-sessions


    【解决方案1】:

    不,这完全是倒退。您应该在第一个视图的会话中存储 model1 实例的密钥,并在第二个视图中将其取出。

    【讨论】:

    • 但这有什么问题,我得到了预期的结果。我不应该将会话实例保存在模型中吗?
    猜你喜欢
    • 2021-09-02
    • 1970-01-01
    • 2017-02-14
    • 2011-07-05
    • 2012-10-15
    • 2019-07-19
    • 2016-11-15
    • 2011-06-12
    • 2012-06-26
    相关资源
    最近更新 更多