Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django login form

Tags:

python

django

I'm a novice to django, altough I have some experience using python. I'm currently learning django, but when I try to use the included login system, I get the following error:

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)

Relevant code from views.py:

@login_required
def userPage(request):
    return HttpResponse("Hello User!")

I am using django 1.6.1 and python 2.7.5 on Fedora 20. I have already tried reinstalling django. In the folders from the error message are other templates. How can I resolve this?

like image 630
martijnvdijk Avatar asked Feb 04 '14 20:02

martijnvdijk


1 Answers

You need to provide the urls (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'
),

and the template login.html (something like that)

<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>
like image 52
wendy_winter Avatar answered Oct 23 '22 05:10

wendy_winter