Django incude url无法正常工作

时间:2015-04-30 09:54:40

标签: python django

以下是基本网址:

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 /?

2 个答案:

答案 0 :(得分:0)

似乎Django正在将您重定向到默认登录网址,很可能是因为login_requireduser_passes_test装饰器。

显然,您的登录网址不是/accounts/login/,因此您需要设置或更改LOGIN_URL设置以指向/api/v1/accounts/login/。如果您根本不想要重定向,则必须更改user_logout视图。

当你在这里时,你可能也想设置LOGOUT_URLLOGIN_REDIRECT_URL

答案 1 :(得分:0)

尝试在您的网址浏览之前添加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"),
)