我编写了以下代码,其中值为 {{category.name}} 的提交操作意外触发了 form_category 中的“创建”按钮,导致出现“请输入名称”消息。
这种方法在之前使用相同逻辑的项目中效果很好。我已经确认 urls.py 已正确设置。可能是什么问题?
<form method="POST">
{% csrf_token %}
category name: {{ form_category }}
<input type="submit" value="create" formaction="{% url 'mk_category' %}">
<span> | </span>
{% for category in categories %}
<input type="submit" value="{{category.name}}" formaction="{% url 'index_with_category' category.id %}">
{% endfor %}
</form>
非常感谢您的帮助!
将每个提交按钮包装在单独的表单标签中可以解决该问题。但是,我计划将来继续在单个表单中使用多个提交按钮。我检查了多次 urls.py 没有发现问题。
请帮我解决这个问题。
答案是 - 您应该为您的提交定义单独的名称。
<form method="POST">
{% csrf_token %}
<span>category name: {{ form_category }}</span>
<input type="submit" name="submit_create" value="create" formaction="{% url 'mk_category' %}" />
<span> | </span>
{% for category in categories %}
<input type="submit" name="submit_update_{{category.id}}" value="{{category.name}}" formaction="{% url 'index_with_category' category.id %}" />
{% endfor %}
</form>