diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 456c8b20d..ce821402e 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -11,6 +11,7 @@ import inspect import django from django.apps import apps from django.conf import settings +from django.contrib.auth import views from django.core.exceptions import ImproperlyConfigured, ValidationError from django.core.validators import \ MaxLengthValidator as DjangoMaxLengthValidator @@ -333,3 +334,11 @@ def authenticate(request=None, **credentials): else: return authenticate(request=request, **credentials) +if django.VERSION < (1, 11): + login = views.login + login_kwargs = {'template_name': 'rest_framework/login.html'} + logout = views.logout +else: + login = views.LoginView.as_view(template_name='rest_framework/login.html') + login_kwargs = {} + logout = views.LogoutView.as_view() diff --git a/rest_framework/urls.py b/rest_framework/urls.py index 1ab5fad61..60107d4d2 100644 --- a/rest_framework/urls.py +++ b/rest_framework/urls.py @@ -15,17 +15,8 @@ and you should make sure your authentication settings include `SessionAuthentica from __future__ import unicode_literals from django.conf.urls import url -from django.contrib.auth import views - -if django.VERSION < (1, 11): - login = views.login - login_kwargs = {'template_name': 'rest_framework/login.html'} - logout = views.logout -else: - login = views.LoginView.as_view(template_name='rest_framework/login.html') - login_kwargs = {} - logout = views.LogoutView.as_view() +from rest_framework.compat import login, login_kwargs, logout app_name = 'rest_framework' urlpatterns = [