【问题标题】:How to use reverse an url with extra arguments in a django template tag?如何在 django 模板标签中使用带有额外参数的反向 url?
【发布时间】:2017-07-28 10:24:21
【问题描述】:

我在 django 中为只需要提交按钮的表单创建了一个模板标签,没有任何其他字段(隐藏的 csrf 字段除外)。可以这样使用:

{% button_only_form "button_text" "action/path" "optionally css classes. %}

我目前主要将其用于删除按钮,因为删除视图需要发送发布请求,但不需要任何其他数据。

现在我发现自己需要动态创建动作。我正在遍历项目列表,每个项目的操作 url 将是调用 reverse("items:delete", kwargs={"item_id": item.id})

的结果

如何为我的模板标签指定这个?这是我的模板的一个非常简化的版本:

<ul>
  {% for item in items %}
    <li>
      {{item.title}} - {% button_only_form "Delete" Im_not_sure_how_to_pass_the_action %}
    </li>
  {% endfor %}
</ul>

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    您可以使用{% url ... as var %} 语法首先为操作创建url,然后将其作为参数传递给button_only_form 标签:

    <ul>
      {% for item in items %}
        <li>
          {% url "items:delete" item_id=item.id as del_url %} 
          {{item.title}} - 
          {% button_only_form "Delete" del_url "..." %}
        </li>
      {% endfor %}
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2015-11-17
      • 1970-01-01
      • 2022-11-25
      • 1970-01-01
      • 2013-04-21
      • 2017-08-11
      • 2014-04-23
      • 1970-01-01
      相关资源
      最近更新 更多