Sto usando Django 1.7
con Python 3.4
. Ho uno scenario in cui desidero che gli utenti vengano reindirizzati a un'altra vista, come definito nel parametro GET next
, dopo aver effettuato l'accesso. Ma con la mia attuale configurazione, vengono sempre reindirizzati alla home page. Speravo che ci fosse un modo per farlo nella get_success_url
della classe FormView
.Reindirizza all'URL successivo in django FormView
Qui di seguito è il mio codice
Il prossimo parametro nell'URL
http://localhost:8000/login/?next=/ads/new
views.py
from django.views.generic.edit import FormView
class LoginView(FormView):
template_name = 'users/login.html'
form_class = LoginForm
def get_success_url(self):
return reverse('home')
def form_valid(self, form):
form.user.backend = 'django.contrib.auth.backends.ModelBackend'
login(self.request, form.user)
messages.info(self.request, 'Login successful')
return super(LoginView, self).form_valid(form)
urls.py
url(r'^login/', LoginView.as_view(), name='login'),
url(r'^new$', 'apps.adverts.views.add_new_advert', name='new_advert'), # URL to use after login, in next param
Con l'impostazione di cui sopra, come faccio a reindirizzare all'URL successivo se è definito, a parte la home page?
possibile duplicato di [URL successo Django usando kwargs] (http://stackoverflow.com/questions/26897050/django-success-url-using-kwargs) – rnevius
Ho visto il collegamento menzionato sopra, e mentre si occupa del reindirizzamento a un altro oggetto/vista, non mostra come ottenere i parametri 'GET' nel metodo' get_success_url' inorder per passare l'URL 'next'. – Frankline