если пользователь входит в систему, используя метод authenticate
/ login
, и у вас загружен SessionMiddleware
, как вы должны, то информация о пользователе должна быть в вашем объекте request.user
.
В объекте View
на основе классов вы можете прочитать request
примерно так:
class SomeView(View):
def get(self, *args, **kwargs):
user = self.request.user
#recommended: check if the user is authenticated, ie, not anonymous.
if user.is_authenticated:
check_something(user) #do whatever you need.
в случае TemplateView
подклассов (я полагаю, поскольку вы упомянули get_context_data
) - этото же самое:
class SomeTemplateView(TemplateView):
def get_context_data(self, *args, **kwargs):
if self.request.user and self.request.user.is_authenticated:
#do something
Глобалы и другие вещи не будут работать в сервисе Django, это может работать на разработке, но в производственном процессе запрос вашего пользователя может быть обработан различными процессами Python в целом, а память не будетбыть разделенным между ними.