Django: URL-адреса в HTML-форме не работают правильно - PullRequest
0 голосов
/ 02 декабря 2018

Я создаю веб-сайт электронной коммерции, у меня есть модель корзины покупок с товарами, я хочу, чтобы клиент выбрал количество определенного товара, который он хочет купить, поэтому я размещаю все в форме на потомвозьмите количество в views.py на request.POST.getlist('quantity') и передайте данные в 'Sales:checkout'.Но там у меня также есть кнопка для удаления отдельного элемента из корзины (Sales:delete_cart_item) и кнопка для опустошения всей корзины (Sales:empty_cart).

Теперь проблема, когда я нажимаю любуюиз последних кнопок, будь то Sales:delete_cart_item или Sales:empty_cart они все выполняют Sales:checkout, пожалуйста, помогите мне понять, что я делаю неправильно

из shopping_cart.html:

<form action="{% url 'Sales:checkout' %}" method="POST">
    {% csrf_token %}
    {% for item in items %}
        <td>{{ item.item.item_name }}</td>
        <td>
            <input type="number" name="quantity" min="1" max="{{ item.item.stock_level }}">
        </td>
        <td>{{ item.item.id }}</td>
        <td>
            <a href="{% url 'Sales:delete_cart_item' item.id %}"><button>Delete row</button></a>
        </td>
    {% endfor %}
    <form action="Sales:empty_cart" method="POST">
        <button type="submit">Empty Cart</button>
    </form>
    <button type="submit">Continue to Secure Checkout</button>
</form>

пожалуйста, спросите, нужны ли вам дополнительные подробности, я открыт для любого способа решения этой проблемы, даже если для этого требуется переписать представление, я не обязательно хочу помещать все в форму, это только самое близкоедолжен сделать это

1 Ответ

0 голосов
/ 02 декабря 2018

Это происходит потому, что обе ваши кнопки запускают отправку формы оформления заказа при нажатии.

Не следует помещать форму в другую, как любую кнопку отправки, даже во «внутренней» форме,в результате отправляется «внешняя» форма.

Поэтому я предлагаю вам переместить кнопки «удалить элемент» (вместе с его упаковочной ссылкой) и «пустую корзину» (вместе с формой последнего) за пределыВаша форма оформления заказа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...