Ребят, объясните мне как создать корзину для гостя на Django Rest Framework и чтобы после регистрации или авторизации под его профилем была наполненная корзина? Я видел примеры использования сессий, но верно ли это так как примеры были связаны просто с Django, а не с DRF?
Вот пример вьюшки добавления товара в корзину, if user.is_authenticated user = user, а если не авторизован то кем тогда юзера делать?:
class AddToCartAPIView(APIView):
authentication_classes = [JWTAuthentication]
def post(self, request, domain, product_slug):
institution = Institution.objects.get(domain=domain)
product = get_object_or_404(Product, slug=product_slug)
user = self.request.user
if user.is_authenticated and user.is_customer:
user = user
else:
# make it that guest user can create cart
# user = ?
return Response(
{"detail": "Authorize to add product to an order."})
cart, cart_created = Cart.objects.get_or_create(
institution=institution, customer=user)
cart_item, cart_item_created = CartItem.objects.get_or_create(
customer=user,
product=product,
cart=cart
)
if cart_created is False:
if cart.items.filter(product__slug=product.slug).exists():
cart_item.quantity += 1
cart_item.save()
return Response({"detail": "Product quantity updated"})
else:
cart.items.add(cart_item)
return Response({"detail": "New product added"})
else:
cart.items.add(cart_item)
return Response({"detail": "Cart created and product added"})