2016-10-02 81 views
0

片段出Django的REST框架的:request.user.is_authenticated爲True時request.user可能爲False嗎?

class IsAuthenticated(BasePermission): 
    def has_permission(self, request, view): 
     return request.user and is_authenticated(request.user) 

def is_authenticated(user): 
    if django.VERSION < (1, 10): 
     return user.is_authenticated() 
    return user.is_authenticated 

是否有一個地方我自己的代碼會從上面返回意外的或不同的結果實際和有關情況?

class IsAuthenticated(BasePermission): 
    def has_permission(self, request, view): 
     return request.user.is_authenticated 

回答

0

如果request.user未定義,則您的錯誤將會出錯。換句話說,如果用戶沒有被識別,所以沒有被添加到請求對象。

如果你不感興趣的向後兼容性我想你可以這樣做:

return request.user and request.user.is_authenticated 
+0

所以解決的辦法就是把它包在一個try - 除了? – dtgq

+0

可以,但爲什麼在一個人會寫四行? – ostergaard

相關問題