【问题标题】:pass variable value store in dictionary to url parameter将字典中的变量值存储传递给 url 参数
【发布时间】:2014-09-19 20:16:38
【问题描述】:

我通过 dict

addon_id_value_mapping = 
          {'menu': '1', 'opening_hour': '2', 'books': '3', 'doctors': '4'}

addon_list = [{u'menu': [{u'price': 50, u'name': u'Momo', u'price_level': u'cheap'},
                     {u'price': 510, u'name': u'potato', u'price_level': u'expensive'},
                     {u'price': 100, u'name': u'Chowmein', u'price_level': u'expensive'}]},
          {u'opening_hour': [{u'close': 17, u'open': 9, u'day': 0}, 
                             {u'close': 17, u'open': 9, u'day': 1},
                             {u'close': 16, u'open': 8, u'day': 2}]}]

从视图到 django 模板。我可以使用template-tags 访问dict 的值来显示,但我无法传入url 字段。我应该怎么做才能在 url 参数中传递存储在 dict 中的变量值

{% if addon_list %}

    {% for addon_name in addon_list %}
        {% for key, values in addon_name.iteritems %}
            <table>
            <tr>
                <td>
                    <h2>{{ key }}</h2>{# title- menu #}
                </td>


                <td>
                    <h5><a href="{% url 'addon:update_addon' spot_id addon_id %}">
                        update</a></h5>
                </td>
                {#todo <I need value of key variable above to replace addon_id. for key== menu I need 1 value>#}
            </tr>

            <tr>
            </tr>

            {% for value in values %}
                {% for k,v in value.iteritems %}
                    <tr>
                        <td>{{ k }}</td>
                        <td>{{ v }}</td>
                    </tr>
                {% endfor %}
            {% endfor %}
        {% endfor %}
    {% endfor %}
</table>
{% endif %}

我正在使用 Django 1.6.5

【问题讨论】:

    标签: django dictionary django-templates


    【解决方案1】:

    尝试编写自定义模板过滤器:

    from django import template
    register = template.Library()
    
    @register.filter(name='get_item')
    def get_item(dictionary, key):
    return dictionary.get(key)
    

    在你的模板中:

    {% load getitem %}
    
    <a href="{% url 'addon:update_addon' spot_id addon_id_value_mapping|get_item:key %}">
    

    有关自定义标签的更多信息,您可以查看custem tag

    【讨论】:

      猜你喜欢
      • 2021-07-28
      • 1970-01-01
      • 2012-05-16
      • 2012-08-02
      • 1970-01-01
      • 2015-12-20
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多