【问题标题】:django templates htmldjango模板html
【发布时间】:2011-04-03 16:11:21
【问题描述】:

我有两种不同的视图(例如,一种用于颜色,另一种用于汽车) 该视图指向同一个模板。
如果您单击一种颜色,模板将显示有关所选颜色的所有信息,与汽车相同。

我要做的是插入一个返回按钮:

<form action="">
{% ifequal back_to colors %}
    <a href="/browse/colors/" style= "text-decoration: none">
    <input type="button" value="Go back"></input></a>
{% endifequal %}  
{% ifequal back_to cars %}
    <a href="/browse/cars" style= "text-decoration: none">
    <input type="button" value="Go back"></input></a>
{% endifequal %}
</form>   

我在视图颜色的哪个位置传递 'back_to': 'colors' 并查看汽车 'back_to':'cars'。
结果是我有两个按钮可以在两个页面中返回。
我想要的是如果我在彩色页面中,只有返回到我选择颜色的页面的按钮,如果我在汽车页面中,只有返回到我选择汽车页面的按钮。
希望我能说明我的观点,如果有人如何做到这一点,我将不胜感激。

【问题讨论】:

    标签: html django django-templates


    【解决方案1】:

    除了将普通字符串作为 back_to 的值传递之外,您还可以使用 django.core.urlresolvers.reverse 将它们变成 URL:

    from django.core.urlresolvers import reverse
    url_to_my_view = reverse('name_of_view') # Gets the URL to the view!
    

    'name_of_view' 是您的 URLconf 中设置的 name of your view。希望对您有所帮助。

    【讨论】:

    • 在我尝试使用 url 但我没有工作之前。我可以展示我所做的: {% url /browse/colors/ as col_url %} {% url /browse/cars/ as car_url %}
      {% if col_url %} {% endif %} {% if car_url %} {% endif %} 表格>
    【解决方案2】:

    如果您可以保证只有两个选项(汽车或颜色),那么您可以执行以下操作:

    <form action="">
    {% ifequal back_to colors %}
        <a href="/browse/colors/" style= "text-decoration: none">
        <input type="button" value="Go back"></input></a>
    {% else %}
        <a href="/browse/cars" style= "text-decoration: none">
        <input type="button" value="Go back"></input></a>
    {% endifequal %}
    </form>   
    

    上面的sn-p也可以简化为:

    <form action="">
    <a href="{% ifequal back_to colors %}/browse/colors{% else %}/browse/cars{% endifequal %}" 
       style= "text-decoration: none">
        <input type="button" value="Go back"></input></a>
    </form>   
    

    更新

    Deniz Dogan 写了一个good point 关于使用反向。

    【讨论】:

    • 现在我有两个选择,但在不久的将来,我至少会有一个指向同一个模板的视图。而且我不知道为什么,但是您的示例不起作用,现在我只有一个按钮,但方向始终相同,颜色。
    • 你能打印出back_to 的值,看看会发生什么吗?此外,如果colors 不是变量,那么您应该在它周围加上引号。像这样:{% ifequal back_to "colors" %}
    • 不错的提示!如果我将颜色放在引号内,则不会出现任何内容。当我尝试打印 back_to ({{ back_to }}) 时,什么也没有出现。所以错误应该在那里..
    • 谢谢!实际上,这是一个非常愚蠢的错误。我通过了错误的观点。对此感到抱歉..我仍在学习,有时会发生愚蠢的错误..
    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    相关资源
    最近更新 更多