2016-10-02 4 views
0

фрагмент из Джанго Rest Framework:Может ли request.user быть False, если request.user.is_authenticated is True?

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

Таким образом, решение является обернуть его в примерочных, за исключением? – dtgq

+0

Не могли бы сделать, но зачем писать четыре строки, когда вы это сделаете? – ostergaard

Смежные вопросы