2
我想訪問我寫過的自定義管理器中當前登錄的用戶。我想這樣做,這樣我可以過濾結果,只顯示他們有權訪問的對象。django訪問在自定義管理器中登錄的用戶
有沒有辦法做到這一點,而沒有真正將它傳入?類似於您可以在其中執行request.user的視圖中的工作方式。
感謝
我想訪問我寫過的自定義管理器中當前登錄的用戶。我想這樣做,這樣我可以過濾結果,只顯示他們有權訪問的對象。django訪問在自定義管理器中登錄的用戶
有沒有辦法做到這一點,而沒有真正將它傳入?類似於您可以在其中執行request.user的視圖中的工作方式。
感謝
沒有傳遞給它的,我見過的最好的方法是使用一箇中間件(在this StackOverflow question描述,我就複製/粘貼爲便於參考):
中間件:
try:
from threading import local
except ImportError:
from django.utils._threading_local import local
_thread_locals = local()
def get_current_user():
return getattr(_thread_locals, 'user', None)
class ThreadLocals(object):
def process_request(self, request):
_thread_locals.user = getattr(request, 'user', None)
經理:
class UserContactManager(models.Manager):
def get_query_set(self):
return super(UserContactManager, self).get_query_set().filter(creator=get_current_user())
有沒有機會看到經理? –