Utk*_*tku 6 python django session
我已经根据这个在 Django 中扩展了会话。简而言之,我添加了一个名为的字段account_id来保存会话所属用户的用户 ID。
一切正常,除了account_id我添加的自定义字段未在登录时设置。这样做:
from django.contrib import auth
from MyApp.models import CustomSession
def login(request):
    username = request.POST['username']
    password = request.POST['password']
    user = auth.authenticate(username=username, password=password)
    if user is not None:
        try:
            auth.login(request, user)
            session_key = request.session.session_key
            # CODE HERE
            if session_key is not None:
                return HttpResponse(json.dumps({'status': 'Success'}))
            else:
                return HttpResponse(json.dumps({'status': 'Fail'}))
我尝试将以下内容放入CODE HERE. 然而,他们都没有工作:
request.session.model.account_id = user.id
session = CustomSession.objects.get(pk=session_key)
session.account_id = user.id
session.modified = True
request.session.account_id = user.idrequest.session[account_id] = user.id在这些尝试中的每一个中,account_id都NULL在数据库中。
我在这里缺少什么?
您忽略了 CustomSession 是一个模型这一事实;您需要保存实例,而不是像版本 2 中那样对其设置“已修改”。
session = CustomSession.objects.get(pk=session_key)
session.account_id = user.id
session.save()