2016-12-10 1 views
0

J'essaie d'entrer dans la page alors que je ne suis pas loggué et app me rediriger la page de connexion et d'obtenir le paramètre suivant fonctionne (ex.Django redirect suivant avec vue par défaut

localhost:8000/login/?next=/blog/add/

mais quand j'entrez votre identifiant et mot de passe et cliquez sur le bouton de connexion il me rediriger vers la page d'accueil, pas celui qui est dans le paramètre suivant

localhost:8000, not localhost:8000/blog/add/

J'utilise vue connexion django par défaut il est donc possible de faire ceci sans ch anging quoi que ce soit dans la vue de connexion? Tout est défaut par django, j'ai ajouté seulement le paramètre suivant en redirigeant vers la page de connexion (en utilisant @login_required (login_url = 'login')), j'ai entendu dire que Django a intégré une fonctionnalité pour rediriger après la connexion avec le paramètre suivant et rien de plus n'est requis?

urls.py

url(r'^login/$', 
     django.contrib.auth.views.login, 
     { 
      'template_name': 'user/login.html', 
      'authentication_form': user.forms.BootstrapAuthenticationForm, 
      'extra_context': 
      { 
       'title': 'Logowanie', 
       'year': datetime.now().year, 
      } 
     }, 
     name='login'), 

login.html

<form action="" method="post" class="form-horizontal"> 
       {% csrf_token %} 
       <h4>Uzyj konta LDAP zeby sie zalogowac</h4> 
       <hr /> 
       <div class="form-group"> 
        <div class="col-md-10"> 
         {{ form.username }} 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-10"> 
         {{ form.password }} 
        </div> 
       </div> 
       <div class="form-group"> 
        <div class="col-md-10"> 
         <input type="hidden" name="next" value="/" /> 
         <input type="submit" value="Zaloguj" class="btn btn-primary btn-block btn-pb" /> 
        </div> 
       </div> 
       {% if form.errors %} 
       <p class="validation-summary-errors">Please enter a correct user name and password.</p> 
       {% endif %} 
      </form> 
+0

Je dois afficher le code –

Répondre

0

Le problème est que vous avez hardcoded la variable next comme / dans votre modèle:

<input type="hidden" name="next" value="/" /> 

Vous devez changer pour utiliser {{ next }}:

<input type="hidden" name="next" value="{{ next }}" /> 
+0

Problème résolu. C'était tellement mauvais que je n'y pensais pas ... merci – mover