Sto creando un progetto Django. Tuttavia, ho incontrato un piccolo singhiozzo. Il mio urls.py assomiglia a questoDjango reindirizza alla radice da una vista
url(r'^login/(?P<nextLoc>)$', 'Home.views.login'),
url(r'^logout/$', 'Home.views.logout'),
mio views.py in app casa è la seguente:
def login(request,nextLoc):
if request.method == "POST":
form = AuthenticationForm(request.POST)
user=auth.authenticate(username=request.POST['username'],password=request.POST['password'])
if user is not None:
if user.is_active:
auth.login(request, user)
return redirect(nextLoc)
else:
error='This account has been disabled by the administrator. Contact the administrator for enabling the said account'
else:
error='The username/password pair is incorrect. Check your credentials and try again.'
else:
if request.user.is_authenticated():
return redirect("/profile/")
form = AuthenticationForm()
error=''
return render_to_response('login.html',{'FORM':form,'ERROR':error},context_instance=RequestContext(request))
def logout(request):
auth.logout(request)
return redirect('/')
Ora quando vado alla pagina di login, si sta aprendo come previsto. Dopo aver inviato il modulo, viene visualizzato un errore che dice che non è possibile trovare gli url del modulo. Dopo aver scavato un po ', ho notato che il redirect ("/") in realtà si traduce in http://localhost/login/
anziché http://localhost/
. Lo stesso accade nel logout, cioè tenta di aprire l'url http://localhost/logout/
anziché http://localhost/
. Fondamentalmente, quando la pagina aperta è http://localhost/login
, lo redirect('/')
aggiunge/alla fine dell'URL corrente, e voila - Ricevo un URL che non mi aspettavo - http://localhost/login/
. Non riesco a farlo reindirizzare alla radice del sito usando il reindirizzamento.
Please help me con questo e, se possibile anche spiegare la causa di questo comportamento irrazionale di Django
Hai provato HttpResponseRedirect? dall'importazione django.http HttpResponseRedirect def disconnessione (richiesta): \t ritorno HttpResponseRedirect ("/") –
dov'è il resto della tua urls.py? Quale vista corrisponde a "/"? – jterrace