使用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无法渲染的主要内容,如果未能解决你的问题,请参考以下文章

django--认证系统

Django-认证系统

Django-认证系统

Django:认证系统

Django-认证系统

Django-认证系统