这是基本网址:
url(r'^api/v1/accounts/', include('accounts.urls')),
在 accounts.urls.py:
urlpatterns = patterns(
'',
url(r'^signup/?$', signup, name="ref_singup"),
url(r'^login/?$', user_login, name="ref_login"),
url(r'^logout/?$', user_logout, name="ref_logout"),
)
http://localhost:8000/api/v1/accounts/logout
以404
回应。
Using the URLconf defined in accounts.urls, Django tried these URL patterns, in this order:
^signup/?$ [name='ref_singup']
^login/?$ [name='ref_login']
^logout/?$ [name='ref_logout']
在这里感到迷茫:)
更新修好ROOT_URLCONF后,还是得到404
Page not found (404)
Request Method: GET
Request URL: http://localhost:8000/accounts/login/?next=/api/v1/accounts/logout
Using the URLconf defined in mysite.urls, Django tried these URL patterns, in this order:
^api/v1/accounts/
The current URL, accounts/login/, didn't match any of these.
我正在请求/api/v1/acounts/login/,但在它上面显示为/accounts/login/?
似乎 Django 将您重定向到默认登录 URL,很可能是因为login_required
或user_passes_test
装饰器。
显然,您的登录网址不是/accounts/login/
,因此您需要设置或更改LOGIN_URL
设置以指向/api/v1/accounts/login/
。如果您根本不想要重定向,则必须更改user_logout
视图。
当您使用它时,您可能还想设置LOGOUT_URL
和LOGIN_REDIRECT_URL
。
尝试在网址视图之前添加views.
:
urlpatterns = patterns(
'',
url(r'^signup/?$', views.signup, name="ref_singup"),
url(r'^login/?$', views.user_login, name="ref_login"),
url(r'^logout/?$', views.user_logout, name="ref_logout"),
)