Django 1.10 RemovedInDjango20Warning: Using user.is_authenticated() and user.is_anonymous() as a method is deprecated. · Issue #4354 · encode/django-rest-framework (original) (raw)
user.is_authenticated()
is used throughout code (I first noticed it in permissions.py
), but in Django 1.10 is_authenticated
is now a property, rather than a method.
This causes a warning in Django 1.10, but in Django 2.0 this code will cease to work.
The full exception message is Using user.is_authenticated() and user.is_anonymous() as a method is deprecated. Remove the parentheses to use it as an attribute.
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
I imagine the easiest way to reproduce this would be to just run DRF's tests and look out for the warnings, or to run tests with -Werror
. I reproduced the issue by running a test that calls an API endpoint with APIView
as the parent class and with the IsAuthenticated
permissions class.
Expected behavior
No warning.
Actual behavior
RemovedInDjango20Warning: Using user.is_authenticated() and user.is_anonymous() as a method is deprecated. Remove the parentheses to use it as an attribute.