Python: ‘module’ object has no attribute ‘logout_view’
我目前正在尝试实现注销到我的 django 站点的功能,但在虚拟环境中尝试使用命令 python manage.py runserver 时出现以下错误:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
(ll_env) C:\\Users\\me\\Desktop\\learning_log>python manage.py runserver
Performing system checks… Unhandled exception in thread started by <function wrapper at 0x0000000006693BA8> |
这是我在 learning_log\\\\users 目录中的 urls.py 文件:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
from django.conf.urls import url
from django.contrib.auth.views import login from . import views urlpatterns = [ |
对上述文件的最新补充是:
1
2 |
# Logout page
url(r‘^logout/$’, views.logout_view, name=‘logout’), |
以下代码作为最新添加添加到了我的 views.py 文件的末尾:
1
2 3 4 5 6 7 8 |
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse from django.contrib.auth import logout def logout_view(request): |
这是我的 base.html 文件:
1
2 3 4 5 6 7 8 9 10 11 12 |
<p><center>[wp_ad_camp_2]</center></p><p>
Learning Log – Topics – {% if user.is_authenticated %} Hello, {{ user.username }}. log out {% else %} log in {% endif %} </p> {% block content %}{% endblock content %} |
这是对我的 base.html 文件的最新添加:
1
|
log out
|
在上述添加之前,代码运行良好。知道我这可能很容易解决,但是有人有解决这个问题的方法吗?我目前正在使用 Django 1.11.7 和 Python 2.7.14。
- 问题可能出在导入行 from . import views 中。 views.py 是否与 urls.py 在同一个应用程序中?
- 不同的 urls.py 文件存在于与 views.py 相同的目录中,但从事物的外观来看,所有文件都包含在同一个应用程序中。包含我所有文件的文件夹名为 learning_log。文件夹里有我整个考验所需的一切,包括两个文件夹;前者命名为 learning_logs,后者命名为 users。前者包含 views.py 文件以及负责处理主题的能力的其他 urls.py 文件
当您在 users\\urls.py
中使用相对导入时
1
|
from . import views
|
这相当于
1
|
from users import views
|
但是,听起来您的 logout_view 在 learning_logs\\views.py 中。如果是这种情况,那么您应该将导入更改为
1
|
from learning_logs import views
|
请注意,Django 有一个 logout 视图,因此您不必编写自己的视图。将您的导入和 URL 模式更改为:
1
2 3 |
from django.contrib.auth.views import logout
url(r‘^logout/$’, logout, name=‘logout’), |
然后在你的设置中设置 LOGOUT_REDIRECT_URL 以便 Django 在注销用户后重定向到索引:
1
|
LOGOUT_REDIRECT_URL = ‘learning_logs:index’
|
来源:https://www.codenong.com/47637751/