发布网友 发布时间:2024-09-07 07:48
共1个回答
热心网友 时间:2024-11-19 06:54
导读:本篇文章首席CTO笔记来给大家介绍有关django如何设置网页跳转的相关内容,希望对大家有所帮助,一起来看看吧。
求教一个关于django的页面跳转的问题跳转和重定向很常见的场景就是登录和注销后返回到当前页面。给你个登录和注销的例子。比如用户正在浏览一篇文章,发现下载该文章的附件需要登录才能进行
Django写的LoginView,登录成功后无法跳转回原页面,求助
Youdonotneedtomakeanextraviewforthis,thefunctionalityisalreadybuiltin.
Firsteachpagewithaloginlinkneedstoknowthecurrentpath,andtheeasiestwayistoaddtherequestcontextpreprosessortosettings.py(the4firstaredefault),thentherequestobjectwillbeavailableineachrequest:
settings.py:
TEMPLATE_CONTEXT_PROCESSORS=(
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.request",
)
ThenaddinthetemplateyouwanttheLoginlink:
base.html:
ahref="{%urldjango.contrib.auth.views.login%}?next={{request.path}}"Login/a
ThiswilladdaGETargumenttotheloginpagethatpointsbacktothecurrentpage.
Thelogintemplatecanthenbeassimpleasthis:
registration/login.html:
{%blockcontent%}
formmethod="post"action=""
{{form.as_p}}
inputtype="submit"value="Login"
/form
{%endblock%}
pythondjango做了个web,在登录界面我想直接调用系统的login模板,可是每次登录成功之后就跳到系统的login.html里包含一个重定向URL的next隐藏域。有这么一行:
inputtype="hidden"name="next"value="{{next}}"/
登陆以后跳转到系统默认的/accounts/profile
你把value改成你想要跳转的url或者给next重新传一个url也行
django本地重定向*相对简单,利用HTTP_REFERER,Django的注销页面这样写就行:
deflogout_user(request):
logout(request)
returnHttpResponseRedirect(request.META.get('HTTP_REFERER','/'))
登录操作:
登陆操作相对复杂,因为一般都有单独的登陆页面,如果登陆成功再取HTTP_REFERER就是登陆页面自己的url,而不是之前的那个页面。
结语:以上就是首席CTO笔记为大家整理的关于django如何设置网页跳转的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django如何设置网页跳转的相关内容别忘了在本站进行查找喔。