Ошибка перенаправления из-за того, что контекст передается шаблону - Django
Я работаю над сайтом электронной коммерции, используя Django. Я столкнулся с проблемой, для которой не могу найти решение. Мой сайт обрабатывает обычные товары и пользовательские заказы. У меня есть представление для обновления количества пользовательских заказов и отдельное представление для обновления количества товаров. Я использую форму с некоторой шаблонной логикой в URL, чтобы решить, какой шаблон URL мне нужен в зависимости от того, является ли это пользовательским заказом или товаром.
bag.html
<form class="form"
action="{% if custom_orders %}{% url 'custom_order_update' item.custom_order.id %}{% else %}{% url 'update_bag' item.product_id %}{% endif %}"
method="POST">
{% csrf_token %}
<div class="col-12">
<div class="form-group w-100">
<div class="input-group">
<div class="input-group-prepend">
<button class="btn btn-main rounded-0 decrement" id="decrement_{{item.product.id}}"
data-product_id="{{ item.product.id }}">
<span class="icon">
<i class="fa-sharp fa-solid fa-less-than"></i>
</span>
</button>
</div>
<input class="form-control quantity" type="number" name="quantity" value="{{item.quantity}}" min="1"
max="50" id="quantity_{{item.product.id}}" data-product_id="{{ item.product.id }}">
<div class="input-group-append">
<button class="btn btn-main rounded-0 increment" id="increment_{{item.product.id}}"
data-product_id="{{ item.product.id }}">
<span class="icon">
<i class="fa-sharp fa-solid fa-greater-than"></i>
</span>
</button>
</div>
</div>
</div>
</div>
<button class="btn btn-main btn-sm rounded-0 mt-2">
Update
</button>
</form>
Если я добавляю обычные товары в приложение "Сумка", а затем добавляю пользовательский заказ, то получаю ошибку перенаправления, которая гласит: Reverse for 'custom_order_update' with arguments '('',)' not found. Проверен 1 шаблон(ы): ['custom_order/update_custom_order/(?P
Ошибка возникает, когда я пытаюсь добавить пользовательский заказ в сумку, если в сумке есть другие товары здесь:
<a href="{% url 'add_custom_order' custom_order.id %}" class="btn btn-main btn-lg rounded-0 add-to-bag mt-5">
<span class="icon">
<i class="fa-solid fa-bag-shopping"></i>
</span>
<span>Add to Bag</span>
</a>
Я отправляю контекст custom_order в представление, которое отображает страницу bag.html, поскольку другие представления используют редирект.
def view_bag(request):
"""
A view to return bag page
"""
bag = request.session.get('bag', {})
custom_orders = bag.get('custom_orders', [])
context = {
'custom_orders': custom_orders
}
return render(request, 'bag/bag.html', context)
Я думаю, что url в форме в bag.html не должен срабатывать до тех пор, пока форма не будет отправлена, но это мешает мне добавить пользовательский заказ в сумку.