2015-02-06 76 views

回答

4

上下文處理器不是你所需要的。上下文處理器(如其名稱所暗示的)在呈現模板時會注入額外的上下文。

你想要的是在視圖運行之前重定向(因此在任何模板呈現之前)。

這可以通過middleware實現,但中間件更適用於全部您的意見。

對於你的情況,你應該寫a decorator,並用它來裝飾這些視圖。具體而言,您可能想要使用user_passes_test

from django.contrib.auth.decorators import user_passes_test 

def my_auth_check(user): 
    # Do something 
    if all_good(user): 
     return True 
    return False 

@user_passes_test(my_auth_check) 
def my_view(request): 
    # stuff 

@user_passes_test(my_auth_check) 
def my_other_view(request): 
    # stuff 
相關問題