models.py
class Cart(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,related_name="cart")
create_date = models.DateTimeField(auto_now_add=True)
class Item(models.Model):
cart = models.ForeignKey(Cart, on_delete=models.CASCADE,related_name='items')
product = models.ForeignKey(Product, on_delete=models.CASCADE,related_name='product')
quantity = models.IntegerField(default=1)
serializers.py
class CartSerializer(serializers.ModelSerializer):
class Meta:
model = Cart
fields = ['user','status']
class ItemSerializer(serializers.ModelSerializer):
cart = CartSerializer()
class Meta:
model = Item
fields = ['cart', 'product', 'quantity']
urls.py
urlpatterns = [
path('add/', AddItem.as_view(),name='add'),
]
views.py
class AddItem(CreateAPIView):
serializer_class = ItemSerializer
permission_classes = [IsAuthenticated]
Как я могу подключить «корзину» в Item, не спрашивая ее напрямую в Django Rest Framework? Я отправляю {"product": 1, "amount": 1}, однако он запрашивает отправку "cart". Я не могу понять, как заставить DRF автоматически разрешать его, когда он подключен к корзине.