Как отправить отдельные действия из одного тега формы? (Django)

Я написал следующий код, в котором действие submit со значением {{category.name}} неожиданно вызывает кнопку "создать" в form_category, что приводит к появлению сообщения "Please enter a name".

Этот подход отлично работал в предыдущем проекте, использующем ту же логику. Я подтвердил, что 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>
Вернуться на верх