IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

login logout redirect


Sujet :

Django Python

  1. #1
    Membre régulier Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Points : 106
    Points
    106
    Par défaut login logout redirect
    Bonjour à tous,

    Je vais pas y aller par 4 chemins : je craque!

    J'ai lu le tuto, cruisé le net, tenté tous les petits trucs tordu qui me passaient par la tete mais rien n'y fait.
    Je n'arrive pas a faire une redirection apres un login//logout...

    C'est un tres triste constat d'échec et j'ai besoin de vous

    Voila ce que j'ai dans mon urls.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        (...)
        (r'^accounts/login/$',  login),
        (r'^accounts/logout/$', logout),
        (r'^admin/', include(admin.site.urls)),
        (r'^$', 'myApp.myFront.views.index'),
       (...)
    Dans mon base.html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    (...)
         <div class="inline">
    			{% if user.is_authenticated %}
    				<a href="#">{{user.username}}</a>
    			{% else %} 
    				<a href="/accounts/login/">log in</a>
    			{% endif %}
    			<a href="/accounts/logout/">log out</a>
    	</div>
    (...)
    Dans mon views.py :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    def login(request):
        username = request.POST['username']
        password = request.POST['password']
        user = auth.authenticate(username=username, password=password)
        response = redirect('myApp.myFront.views.index')
        if user is not None and user.is_active:
            auth.login(request, user)
            return response
        else:
            # Show an error page
            # return HttpResponseRedirect("/account/invalid/")
            return response
     
    def logout(request):
        auth.logout(request)
        response = redirect('myApp.myFront.views.index')
        return response
    Et enfin mon login.html (qui est dans le rep /templates/registration) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    {% extends "base.html" %}
    {% load url from future %}
     
    {% block content %}
     
    {% if form.errors %}
    <p>Your username and password didn't match. Please try again.</p>
    {% endif %}
     
    <form method="post" action='.'>
    {% csrf_token %}
    <table>
    <tr>
        <td>{{ form.username.label_tag }}</td>
        <td>{{ form.username }}</td>
    </tr>
    <tr>
        <td>{{ form.password.label_tag }}</td>
        <td>{{ form.password }}</td>
    </tr>
    </table>
     
    <input type="submit" value="login" />
    <input type="hidden" name="next" value="{{ next|escape }}" />
    </form>
     
    {% endblock %}
    Et malgré la balise "value" et le redirect inlassablement je suis redirigé vers /account/profile (qui n'existe pas)...

    Je craque...
    Help....

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 21
    Points : 31
    Points
    31
    Par défaut
    je ne comprends pas pourquoi tu compte sur la valeur "login" de ta balise submit pour faire le boulot.

    dans ta vue login, tu devrais déjà valider que :

    if(request.method == 'POST'):
    ....tout ce que tu as déjà mis

    ensuite, tes template login et logout devraient résider dans templates/accounts/ et aps dans registration

    le redirect sur account/profile : si tu as installé django-profile y'a un setting a definir genre LOGIN_URL qui indique ou on est redirigé en cas de login

  3. #3
    Membre régulier Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Points : 106
    Points
    106
    Par défaut
    Une lumiere au bout du tunnel, merci !

    Disons que tous les bouts de code que j'ai c/c et donc que j'utilise ont été récupéré depuis la doc officielle (https://docs.djangoproject.com/en/dev/topics/auth/), et notamment pour le login.html, la balise submit prend bien en param la value "login".

    Quoiqu'il en soit, là où ca pêche c'est que la "fameuse" balise "next" n'a pas l'air de faire son travail (la redirection apres un login success n'est pas effective), ou plutot je devrais dire que je l'utilise tres mal !

    D'ou mon post ici

    Merci d'avance pour ton aide

    userB

  4. #4
    Membre régulier Avatar de userB
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2005
    Messages : 147
    Points : 106
    Points
    106
    Par défaut
    Pas de réponse, bonne réponse (ou pas)!

    Bon j'ai trouvé l'erreur, en fait mon code est ok, mais lorsque j'ai modifié mon settings.py pour ajouter les imports ad'hoc, il faut faire un syncdb pour que django creer les tables qui vont bien.

    En esperant que ca puisse aider une pauvre âme.

    userB

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Page de login et redirection
    Par HULK dans le forum ASP.NET
    Réponses: 9
    Dernier message: 14/09/2007, 11h26
  2. Login - logout nouvelle fenetre "page not found"
    Par sperron dans le forum ASP
    Réponses: 1
    Dernier message: 24/01/2007, 22h11
  3. login-logout session asp et javascript
    Par sperron dans le forum ASP
    Réponses: 3
    Dernier message: 15/12/2006, 15h56
  4. [Sécurité] Login/logout
    Par kastha dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2006, 03h14
  5. [Portlet/Jsf] Login et redirection
    Par CtHu dans le forum JSF
    Réponses: 3
    Dernier message: 10/04/2006, 12h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo