Django Rest-Framework登录视图

时间:2019-03-01 22:33:24

标签: django rest django-rest-framework django-views

当我按下可浏览api中的登录按钮时,它应该显示Django REST框架登录页面,但是没有。  我收到了以下HTTP响应:“ GET / api-auth / login /?next = / api-auth / login / HTTP / 1.1” 200 5415

基本URLs.py:

urlpatterns = [

path('', include('RunKeeper.urls')),
path('api-auth/', include('rest_framework.urls')),]

rest-framework URLs.py:

from __future__ import unicode_literals

from django.conf.urls import url
from django.contrib.auth import views

template_name = {'template_name': 'rest_framework/login.html'}

app_name = 'rest_framework'
urlpatterns = [
    url(r'^login/$', views.LoginView.as_view(), template_name, name='login'),
    url(r'^logout/$', views.LogoutView.as_view(), template_name, name='logout'),

我已将其余框架包含在已安装的应用程序中。

我该如何解决问题

1 个答案:

答案 0 :(得分:0)

在DEFAULT_AUTHENTICATION_CLASSES类中添加BasicAuthentication和SessionAuthentication类,如下所示。

 REST_FRAMEWORK = {
        'DEFAULT_AUTHENTICATION_CLASSES': (
            'rest_framework.authentication.BasicAuthentication',
            'rest_framework.authentication.SessionAuthentication',
        )
    }

以及以下网址格式

urlpatterns = [
    url(r'^login/$', views.LoginView.as_view(template_name='rest_framework/login.html'), name='login'),
    url(r'^logout/$', views.LogoutView.as_view(), name='logout'),
]

为什么在logoutView中有登录模板? 也将其删除。