Отсутствует 1 обязательный позиционный аргумент django _id
Я пытаюсь сделать корзину для сайта доставки. У меня куча проблем) вот одна из них:
методу remove() не хватает 1 аргумента:
Мое мнение:
def cart_remove(request, dish_id):
cart = Cart(request)
dish = get_object_or_404(Dish, id=dish_id)
cart_remove(dish)
return redirect('cart:cart_detail')
Мой шаблон:
{% for item in cart%}
{% with dish=item.dish %}
<tr>
<td>
<a href="{{ dish.get_absolute_url }}">
<img src="{{ dish.picture.url }}" width="100" height="100">
</a>
</td>
<td>{{dish.name}}</td>
<td>{{item.quantity}}</td>
<td><a href="{% url 'cart:cart_remove' dish.id %}">Remove</a></td>
<td class="num">$ {{item.price}} </td>
<td class="num">$ {{item.total_price}} </td>
</tr>
{% endwith %}
{% endfor %}
мой метод itter в классе Cart:
def __iter__(self):
dish_ids = self.cart.keys()
dishes = Dish.objects.filter(id__in=dish_ids)
for dish in dishes:
self.cart[str(dish.id)]['dish'] = dish
for item in self.cart.values():
item['price'] = Decimal(item['price'])
item['total_price'] = item['price'] * item['quantity']
yield item
my urls.py:
urlpatterns = [
path('', cart_detail, name='cart_detail'),
path('add/<dish_id>/', cart_add, name='cart_add'),
path('remove/<dish_id>/', cart_remove, name='cart_remove'),
]
измените url на этот и попробуйте :
' int:dish_id ' в urls