Как получить id щелкнутого элемента Django
Здравствуйте, у меня есть список товаров в корзине, но я хотел бы уменьшить, увеличить и удалить товары из корзины, но я понятия не имею, как получить "pk" этих товаров. Нужно ли мне использовать update view, если я не хочу использовать JS?
views.py
class CartView(TemplateView):
template_name = "shop/cart.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['cart'] = Cart.objects.annotate(
price=Sum(F('orderitem__item__price') * F('orderitem__quantity'))
).get(order_user= self.request.user)
cart = context['cart']
cart.total = cart.price
cart.save()
context['order_items'] = OrderItem.objects.filter(cart=cart)
return context
def post(self, request, pk):
if 'minus' in request.POST:
cart = Cart.objects.get(order_user=self.request.user)
OrderItem.objects.filter(id=pk, cart=cart).update(
quantity=F('quantity')-1)
return HttpResponse("cart uptaded")
pk - то же самое, что id
в вашем urls.py:
path("yourpath/<int:id>/", view, name='viewname')
и в вашем шаблоне:
href="{% url 'appname:viewname' object.id %}"