【问题标题】:django how to redirect to homepage from within a templatedjango 如何从模板中重定向到主页
【发布时间】:2013-10-05 02:24:30
【问题描述】:

好的,所以基本上我的主页('^$')是一个登录页面,用户登录后,它会将他发送到另一个页面,其中有一个注销按钮。在我的模板中,注销按钮只是一个链接。

<a href="">Logout</a>

href 里面应该写什么?通常,如果我想重定向到不同的视图,我会将视图名称放在引号中,但主页视图只是'^$',所以我尝试在不起作用的引号内将其留空。我也试过做

<a href="/^$">Logout</a>

惨遭失败。关于如何做到这一点的任何想法?

【问题讨论】:

    标签: django redirect django-templates django-views


    【解决方案1】:
    <a href="">Logout</a>
    

    将引用当前页面(基本上是页面重新加载)

    试试:

    <a href="/">Logout</a>
    

    如果 localhost:8000/ 是您尝试定位的 URL

    推荐的方式是:

    <a href="{% url myapp.views.home_page %}">Logout</a>
    

    其中myapphome_page 分别指的是应用名称和视图名称。

    或者,You can Name a URL Pattern:

    url(r"^$", 'my_view', name="homepage")
    

    现在,你会做的

    <a href="{% url homepage %}">Logout</a>
    

    如果>django 1.5,

    <a href="{% url 'homepage' %}">Logout</a>
    

    【讨论】:

    • 啊,完美。我想我应该将所有链接更改为 {%%} 标签。谢谢!所以嗯,在我看来,如果我想重定向到另一个视图,例如,“如果用户不是无:auth.login(request, user) return redirect('/loggedin_view/')”我可以做“返回重定向({% url myapp.views.loggedin_view %})" ?
    • 在视图中,{%%} 不起作用。你可以使用redirect(reverse('myapp.views.loggedin_view'))
    • hm 等等,所以当我将其更改为“a href="{% url myapp.views.home_page %}”时,它给了我一个错误,说“'url' 需要一个非空的第一个参数. Django 1.5 中的语法发生了变化,请参阅 dos。”我猜我应该在“myapp.views.home_page”周围加上引号?好的,添加引号有效。完美。
    • hmm.. redirect(reverse()) 是做什么的?
    • reverse 从 view 方法计算 url 路径。并且 redirect 会重定向到 path 。 Django 教程很好地涵盖了这一点
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 2021-05-26
    • 2018-04-03
    • 2015-10-01
    • 2011-05-13
    • 1970-01-01
    • 2014-02-10
    相关资源
    最近更新 更多