我在django中为只需要提交按钮的表单创建了一个模板标签,没有任何其他字段(隐藏的csrf字段除外)。它可以使用如下:
{% button_only_form "button_text" "action/path" "optionally css classes. %}
我目前主要用于删除按钮,因为删除视图需要发送帖子请求,但不需要任何其他数据。
现在我发现自己处于需要动态创建动作的情况。我正在迭代一个项目列表,每个项目的操作网址都是调用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>
答案 0 :(得分:1)
您可以使用{% url ... as var %}
语法首先为操作创建网址,然后将其作为参数传递给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>