我使用django的后端解决方案。我只想从cookie或会话密钥中获取用户名以了解用户。我该怎么做?

from django.contrib.auth.models import User
from django.contrib.sessions.models import Session

def start(request, template_name="registration/my_account.html"):
    user_id = request.session.get('session_key')
    if user_id:
        name = request.user.username
        return render_to_response(template_name, locals())
    else:
        return render_to_response('account/noauth.html')

只有其他人来了。我做错什么了?
我说的对吗?那就是说他已经登录了?
-->好的,我拿到了!
首先,如果你对一个问题有一些澄清,更新这个问题,不要像你所做的那样发布一个答案或者(更糟的)另一个问题。其次,如果用户已注销,根据定义,他没有用户名。
我的意思是Cookies的优点是再次识别用户。我只想把他的名字写在网页上。即使他注销了。还是不可能?

最佳答案

Piquadra有绝对正确的答案,但是如果出于某种原因您确实需要从会话中获取用户,则可以对会话对象调用get_decoded()

session_data = request.session.get_decoded()
user_id = session_data['_auth_user_id']

09-25 17:24
查看更多