Django get current user globally in the project

Sometimes, you will need to get the current authenticated user in models, or other parts of your app.

To achieve this, you must create this middleware and add it to MIDDLEWARE_CLASSES in project settings:
try:
from threading import local, current_thread
except ImportError:
from django.utils._threading_local import local

_thread_locals = local()


class GlobalUserMiddleware(object):
"""
Sets the current authenticated user in threading locals

Usage example:
from app_name.middleware import get_current_user
user = get_current_user()
"""
def process_request(self, request):
setattr(
_thread_locals,
'user_{0}'.format(current_thread().name),
request.user)

def process_response(self, request, response):

key = 'user_{0}'.format(current_thread().name)

if not hasattr(_thread_locals, key):
return response

delattr(_thread_locals, key)

return response


def get_current_user():
return getattr(
_thread_locals,
'user_{0}'.format(current_thread().name),
None)

Usage example:
from myapp.middleware import get_current_user

user = get_current_user()

Comments

  1. Bị dị ứng khi mang thai có ảnh hưởng gì không?Dị ứng là một phản ứng bất thường của hệ miễn dịch. Dị ứng xảy ra khi hệ miễn dịch chịu ảnh hưởng của một chất vô hại nào đó trong môi trường. Các chất này được gọi chung là dị ứng nguyên.
    Công dụng của việc ăn cà rốt sốngCaroten có trong cà rốt cũng chính là bán thành phẩm của vitamin A, nghĩa là nguồn sinh ra vitamin A. Tuy nhiên, đây lại là chất khó hấp thu đối với cơ thể.
    Thực đơn ăn kiêng 7 ngày cho người giảm cânViệc thiết lập một thực đơn giảm cân từ những thực phẩm giảm cân phù hợp với kế hoạch giảm cân của bạn là yếu tố rất quan trọng quyết định đến hiệu quả giảm cân của bạn.
    Cách trị tàn nhang hiệu quả bằng lá trầu khôngTrị nám da bằng lá trầu không giờ đây đã trở thành tuyệt chiêu của nhiều chị em khi làm đẹp tại nhà với một cách thức vô cùng đơn giản và mang đến một hiệu quả đáng kinh ngạc
    Quay phim 4k là sao?Phim 4k là một chuẩn hình ảnh với độ sắc nét cực cao, xuất hiện trên thế giới từ những năm 2003
    Bị dị ứng nên kiêng ăn gì?Bị dị ứng nên ăn gì? là câu hỏi thường gặp của các bạn đọc, bởi dị ứng là tình trạng thường gặp, mà đặc biệt chế độ ăn uống đối với những người dị ứng vô cùng quan trọng.
    Bị dị ứng hải sản phải làm sao?Mùa hè là mùa để mọi người mọi nhà đi du lịch, về với biển xanh. Hải sản là thực phẩm chính trong các bữa ăn khi chơi ở biển, đồng thời cũng là sở thích của nhiều người.
    Triệu chứng của bệnh viêm xoang là gì?Viêm xoang là một căn bệnh khá phổ biến với những triệu chứng rất dễ nhận biết, bệnh tuy không nguy hiểm nhưng lại gây ra những ảnh hưởng không hề nhỏ đến chất lượng cuộc sống của bệnh nhân.
    Viêm xoang mũi có lây không?Bệnh viêm xoang không gây nguy hiểm đến tính mạng người bệnh, không đe dọa trực tiếp đến sức khỏe người mắc phải, tuy nhiên nếu bị mắc phải căn bệnh này,
    Gà ác tiềm thuốc bắc có tác dụng gì?Gà ác thuộc họ trĩ, có tên khoa học là Gallus gallus domesticus brisson, còn được gọi là ô cốt kê, ô kê... là loại gà cỡ nhỏ, được thuần hóa và nuôi dưỡng
    Cách nấu gà ác hầm hạt sen Gà ác hầm thuốc bắc bổ dưỡng thì ai cũng biết rồi. Hôm nay, chúng tôi chia sẻ tiếp đến các bạn một món ăn vô cùng bổ dưỡng đó là món gà ác hầm hạt sen.

    ReplyDelete

Post a Comment

Popular posts from this blog

PIP - upgrade all packages from requirements.txt (interactively)

Improve font rendering for IntelliJ IDEA / Pycharm in Ubuntu