Gab*_*rns 10 django django-admin
我刚开始使用Django,我正在尝试尽可能多地使用内置功能.因此,对于用户登录,我使用内置登录视图,并将其分配给我的站点的基本URL:
urlpatterns=patterns('django.contrib.auth.views',
url(r'^/$','login',{'template':'mytemplate.html'}),
Run Code Online (Sandbox Code Playgroud)
mytemplate.html看起来像这样:
<!DOCTYPE html>
<html>
<body>
{%if form.errors %}
<p> Invalid username/password combination, please try again </p>
{% endif %}
<h1>Welcome to My Site!</h1>
<form action="{% url django.contrib.auth.views.login %}" method="post">
{% csrf_token %}
{{form.username.label_tag}}{{form.username}}
{{form.password.label_tag}}{{form.password}}
<input type="submit" id="submit" name="submit" value="Sign in" />
<input type="hidden" name="next" value="{{ next }}" />
</form>
<a href="password_reset/" id="forgot"> forgot username/password</a><br />
<a href="register" id="new">new user</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的问题是,模板似乎没有通过它应该传递的任何上下文.在渲染的HTML中,我的所有变量标签都会消失(即,不是被适当的值替换,而是替换为空).
我想我正在跳过一些关键步骤,但我无法弄清楚它是什么.有任何想法吗?
小智 13
您需要从"模板"更改为"template_name"
urlpatterns=patterns('django.contrib.auth.views',
url(r'^/$','login',{'template_name':'mytemplate.html'}),
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/1.4/topics/auth/#django.contrib.auth.views.login
尝试从 url 配置中删除模板名称。然后 Django 将回退到标准模板,这样您就可以查看是否以某种方式搞砸了模板或者是否有其他问题。
我的下一个猜测是检查您的 TEMPLATE_CONTEXT_PROCESSORS 设置。如果您定义了其中任何一个,请务必包括
"django.contrib.auth.context_processors.auth",
Run Code Online (Sandbox Code Playgroud)
如果您没有定义任何内容,django 将使用标准元组,其中已包含身份验证处理器。
| 归档时间: |
|
| 查看次数: |
12700 次 |
| 最近记录: |