在Django中,我如何知道當前登錄的用戶?


0 Answers

擴展@ vikingosegundo的答案,如果你想在模型中獲得用戶名,我找到了一種涉及聲明MiddleWare的方法。 在您的應用程序中創建一個名為get_username.py的文件,其內容如下:

from threading import current_thread

_requests = {}

def get_username():
    t = current_thread()
    if t not in _requests:
         return None
    return _requests[t]

class RequestMiddleware(object):
    def process_request(self, request):
        _requests[current_thread()] = request

編輯您的settings.py並將其添加到MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
    ...
    'yourapp.get_username.RequestMiddleware',
)

現在,在你的save()方法中,你可以得到如下的當前用戶名:

from get_username import get_username

...

def save(self, *args, **kwargs):
    req = get_username()
    print "Your username is: %s" % (req.user)
Question

在Django中,我如何知道當前登錄的用戶?




Related



Tags

django django   login