我正在学习Django和Django REST框架.之前我有这个错误并修复它.现在,这个问题又重新出现了.
这是我在尝试获取身份验证令牌时遇到的错误:
'module'对象没有属性'views'
这是我的urls.py
:
from django.conf.urls import include, url import rest_framework from rest_framework import authtoken from . import views urlpatterns = [ url(r'^games/$', views.GameList.as_view()), url(r'^games/(?P[0-9]+)/$', views.GameDetail.as_view()), url(r'^users/$', views.UserList.as_view()), url(r'^users/(?P [0-9]+)/$', views.UserDetail.as_view()), url(r'^api-token-auth/', authtoken.views.obtain_auth_token), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), ]
不知怎的,它找不到authtoken.views
.令人讨厌的是,这个工作正常,直到我重新启动manage.py runserver
.
它不起作用的原因 - authtoken
是一个包 - 当你导入它时,它不包含你想要的东西 -
>>> from rest_framework import authtoken >>> dir(authtoken) ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
你可以看到它authtoken
不包含任何有用的东西.但是,您感兴趣的视图实际上是在views
模块内部.
所以我们可以先将导入更改为:
from rest_framework.authtoken import views as authviews
然后在urlconf中使用它:
url(r'^api-token-auth/', authviews.obtain_auth_token),