Django登录表单

mar*_*ijk 8 python django

我是django的新手,尽管我有使用python的经验.我正在学习django,但是当我尝试使用包含的登录系统时,我收到以下错误:

Template Loader Error:
Django tried loading these templates, in this order:
Using loader django.template.loaders.filesystem.Loader:
Using loader django.template.loaders.app_directories.Loader:
/usr/lib/python2.7/site-packages/django/contrib/admin/templates/registration/login.html (File does not exist)
/usr/lib/python2.7/site-packages/django/contrib/auth/templates/registration/login.html (File does not exist)
Run Code Online (Sandbox Code Playgroud)

来自views.py的相关代码:

@login_required
def userPage(request):
    return HttpResponse("Hello User!")
Run Code Online (Sandbox Code Playgroud)

我在Fedora 20上使用django 1.6.1和python 2.7.5.我已经尝试重新安装django.在错误消息的文件夹中是其他模板.我该如何解决这个问题?

小智 18

你需要提供网址(project/urls.py)

from django.contrib.auth.views import login
from django.contrib.auth.views import logout

url(
    regex=r'^login/$', 
    view=login, 
    kwargs={'template_name': 'login.html'}, 
    name='login'
),
url(
    regex=r'^logout/$', 
    view=logout, 
    kwargs={'next_page': '/'}, 
    name='logout'
),
Run Code Online (Sandbox Code Playgroud)

和模板login.html(类似的东西)

<form action="{% url 'login' %}" method="post" accept-charset="utf-8">
    {% csrf_token %}
    {% for field in form %}
        <label>{{ field.label }}</label>
        {% if field.errors %}
            {{ field.errors }}
        {% endif %}
        {{ field }}
    {% endfor %}
    <input type="hidden" name="next" value="{{ next }}" />
    <input class="button small" type="submit" value="Submit"/>
</form>
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是,`login.html`需要位于名为registration的文件夹中(需要驻留在TEMPLATE_DIRS中列出的目录中) (7认同)

Mat*_*ias 5

查看有关身份验证文档:

您有责任为登录模板提供html

该文档提供了一个示例模板.