2010-08-11 6 views
4

Je rencontre des problèmes en cours d'exécution à travers un tutoriel et il semble que les problèmes découlent de ce:Django Connexion App problèmes Tutoriel

(r'^l/login/$', 'django.contrib.auth.views.login'), 

Il semble que je l'ai fait tout juste, mais les formes. DonT spectacle Si je clique sur Connexion. Je reviens à la même page sans formulaires.

Ai-je raté quelque chose?

Voici le code:

urls.py:

from django.conf.urls.defaults import * 
from formsapp.views import * 
from login.views import * 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 

#Forms1: 
    (r'^$', main_page), 
#Forms2 
    (r'^register/', main_page1), 
#FormsLogin: 
    (r'^l/', login_main_page), 
    (r'^l/login/$', 'django.contrib.auth.views.login'), 
    (r'^l/logout/$', 'logout_page'), 

views.py:

from django.http import HttpResponse, Http404, HttpResponseRedirect 
from django.contrib.auth import logout 
from django.contrib.auth.models import User 
from django.template import RequestContext 
from django.shortcuts import render_to_response 

def login_main_page(request): 
    return render_to_response('mainpage.html', RequestContext(request)) 

def logout_page(request): 
    logout(request) 
    return HttpResponseRedirect('/l/') 

base.html:

<html> 

<head> 

<title> {% block title %}{% endblock %}</title> 

</head> 

<body> 
<h1>{% block head %}{% endblock %}</h1> 
{% block content %}{% endblock %} 
<br> 
<br> 
<br> 
<a href="/l/">Login Main Page</a> 
{% if user.is_authenticated %} 
    <a href="/l/logout/">Log out </a> 
{% else %} 
    <a href="/l/login/">Log in </a> 
{% endif %} 

</body> 

</html> 

login.html:

{% extends "base.html" %} 
{% block title %}Log in{% endblock %} 
{% block head %}Log in{% endblock %} 
{% block content %} 
    {% if form.has_errors %} 
    <p> Username or password didn't work. Please enter them again </p> 
    {% endif %} 

    <form method="post" action="."> 
     <p><label for="id_username">Username: 
      </label>{{ form.username }}</p> 
     <p><label for="id_password">Password: 
      </label>{{ form.password }}</p> 
     <input type="hidden" name="next" 
      value="/l/" /> 
     <input type="submit" value="Log in" /> 
    </form> 

{% endblock %} 

Répondre

5

modèle d'URL

(r'^l/', login_main_page), 

correspond à tout URL commençant par l/ et il est placé avant l/login si seconde ne sera pas appelé, vous devez mettre fin à regexp avec $:

(r'^l/$', login_main_page), 
+1

Merci une bilion! Vous êtes le maître. C'était l'erreur !! – MacPython

+0

Correction de la mise en forme après l'édition de [Lev Levitsky] (http://stackoverflow.com/users/1258041/lev-levitsky), thx Lev pour casser le code de réponse ... – rombarcz