Bir django projesi oluşturuyorum. Ancak, küçük bir hıçkırıkla karşılaştım.Django, bir görünümden köke yönlendirme
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('/')
Şimdi beklendiği gibi ben bu açılıyor giriş sayfasına gidiyorum zaman: Ev uygulamasında bu
url(r'^login/(?P<nextLoc>)$', 'Home.views.login'),
url(r'^logout/$', 'Home.views.logout'),
Benim views.py aşağıdaki gibidir gibi My urls.py görünüyor. Formu gönderdikten sonra, modül URL'lerini bulamadığını belirten bir hata alıyorum. Biraz etrafta kazandıktan sonra, yönlendirme ("/") aslında http://localhost/
yerine http://localhost/login/
'a dönüştüğünü fark ettim. Aynı durum çıkışta olur, yani http://localhost/
yerine http://localhost/logout/
URL'sini açmaya çalışır. Temel olarak, sayfa açıldığında, redirect('/')
, redirect('/')
, geçerli URL'nin sonuna ekler ve voila - Beklemediğim bir URL alıyorum - http://localhost/login/
. Yönlendirmeyi kullanarak sitenin köküne yönlendirme yapamıyorum.
bana bu konuda yardım ve mümkünse de Django bu mantıksız davranışlarının nedenini açıklayınız
Eğer documentation for redirect bakarsak
denediniz mi? django.http ithalattan HttpResponseRedirect def çıkış (istek): \t dönüş HttpResponseRedirect ("/") sizin urls.py gerisi nerede –
? Hangi görünüm "/" ile aynı mı? – jterrace