ошибка при использовании django.contrib.auth.views.login

я получаю сообщение об ошибке "представление должно быть вызываемым или списком/кортежем в случае include()". при попытке использовать встроенную систему входа в систему django (logout, logout, logout_then_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"))
]

шаблоны/регистрация/логин.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>

person Shubham Tiwari    schedule 18.07.2017    source источник


Ответы (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))
]
person ger.s.brett    schedule 18.07.2017
comment
include() по-прежнему принимает модули в виде строк. Не могли бы вы удалить это? Это совершенно не нужно. - person zaidfazil; 19.07.2017