我正在为我的django应用程序创建一个自定义登录,当我点击模板上的logout
我编程时会出现问题,因此它会转到索引页面,但浏览器中的网址仍然是http://127.0.0.1:8000/logout/
甚至达到索引页。我希望它成为http://127.0.0.1:8000/
。
views.py
def logout(request):
try:
del request.session['uid']
return render(request, 'home.html')
except:
pass
return render(request, 'home.html')
def home_page(request):
return render(request, 'home.html')
模板
<p>
Publisher Dashboard, Welcome {{ user.name }}.
<a href="{% url 'logout' %}" class="btn btn-primary">Logout</a>
</p>
urls.py
from django.conf.urls import url
from django.contrib import admin
from mainapp import views
urlpatterns = [
url(r'^$', views.home_page, name='homepage'),
url(r'^registration/$', views.signup_user, name='signup_user'),
....
url(r'^logout/$', views.logout, name='logout'),
]
答案 0 :(得分:1)
目前您正在呈现'home.html
模板,而不是将用户重定向到主页。
如果您想重定向,则应返回HttpResponseRedirect
响应,或使用redirect
快捷方式。
from django.shortcuts import redirect
def logout(request):
...
return redirect('/')
答案 1 :(得分:0)
渲染将给出一个新的网页,但没有一个新的URL。
重定向将给出一个新的URL。
因此,在渲染的情况下,即使将加载新的网页,您的地址栏也不会更改。 但是在使用新URL的情况下,您实际上是在获取新URL,因此该URL的新网页的地址栏也会更新。