2017-07-18 19 views
0

我收到錯誤「在include()的情況下,視圖必須是可調用的或列表/元組。同時嘗試使用django的內置登錄系統(登錄,註銷,logout_then_login)。任何人都可以請解決這個問題。使用「django.contrib.auth.views.login」時出錯

書籤/帳戶/ urls.py-

from django.conf.urls import url 
from . import views 
urlpatterns = [ 
url(r'^login/$', 'django.contrib.auth.views.login', name='login'), 
url(r'^logout/$', 'django.contrib.auth.views.logout', name='logout'), 
url(r'^logout-then-login/$', 'django.contrib.auth.views.logout_then_login', 
name='logout_then_login'), 
] 

書籤/ urls.py-

from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^account/',include("account.urls")) 
] 

模板/註冊/ login.html-

<body> 

<h1>Log-in</h1> 
{% if form.errors %} 
    <p>Your username and password didn't match. Please try again.</p> 
{% else %} 
    <p>Please, use the following form to log-in. 
{% endif %} 

<div class="login-form"> 
    <form action="{% url "login" %}" method="post"> 
     {{ form.as_p }} 
     {% csrf_token %} 
     <input type="hidden" name="next" value="{{ next }}" /> 
     <p><input type="submit" value="Log-in"></p> 
    </form> 

</body> 

模板/註冊/logged_out.html-

<h1>Logged out</h1> 
<p>You have been successfully logged out. You can <a href="{% url "login" 
%}">log-in again</a>.</p> 

</body> 

回答

1

我假設你正在使用django> 1.9:所以你不能再使用字符串作爲視圖。所以,你需要做這樣的事情的所有觀點:

from django.contrib.auth.views import login 
#..... 

    url(r'^login/$', login, name='login'), 
    ... 

而且還與包括:

from django.contrib import admin 
from accounts import urls 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^account/',include(urls)) 
] 
+0

'包括()'函數仍然接受模塊爲字符串。你能刪除那個嗎?這完全沒有必要。 – zaidfazil