使用django认证系统时login.html无法渲染
Posted
技术标签:
【中文标题】使用django认证系统时login.html无法渲染【英文标题】:login.html cannot be rendered when using django authentication system 【发布时间】:2014-10-20 12:23:34 【问题描述】:我正在使用 django 默认身份验证系统进行登录和注销。但是,当单击login
按钮时,我的模板login.html
无法呈现;只有 url 改变了。任何人都可以看到为什么会这样吗?顺便说一句,我正在使用 django 1.6。谢谢。
这是我的项目结构:
├── my_news
│ ├── __init__.py
│ ├── settings.pyc
│ ├── templates
│ │ └── registration
│ │ ├── logged_out.html
│ │ └── login.html
│ ├── urls.py
│ ├── wsgi.py
│
├── manage.py
└── news
├── __init__.py
├── admin.py
├── models.py
├── templates
│ ├── base.html
│ └── news
│ └── news_list.html
├── tests.p
├── views.py
我的项目级别 my_news/urls.py:
urlpatterns = patterns(
'',
url(r'^admin/', include(admin.site.urls)),
url(r'$', NewsListView.as_view(), name='home'),
url(r'^login/$', 'django.contrib.auth.views.login'),
url(r'^logout/$', 'django.contrib.auth.views.logout'),
)
base.html:
user
% if user.is_anonymous %
<a href="% url 'django.contrib.auth.views.login' %">login</a>
% else %
<a href="% url 'django.contrib.auth.views.logout' %">logout</a>
% endif %
【问题讨论】:
【参考方案1】:我发现了问题。原来我错过了主页网址中的^
字符。
之前是url(r'$', NewsListView.as_view(), name='home'),
,现在应该是这个:
url(r'^$', NewsListView.as_view(), name='home'),
。
【讨论】:
【参考方案2】:login.html模板应该放在templates/admin目录而不是注册目录
【讨论】:
嗨,这是用于用户身份验证的。我尝试放入管理目录,但它也没有工作。以上是关于使用django认证系统时login.html无法渲染的主要内容,如果未能解决你的问题,请参考以下文章