Корзина и Корзина Пункт отношений в Django Rest Framework - PullRequest
0 голосов
/ 19 февраля 2020
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 автоматически разрешать его, когда он подключен к корзине.

1 Ответ

0 голосов
/ 19 февраля 2020

Поскольку вы использовали ModelSerializer и определили корзину в списке полей внутри ItemSerializer. Serializer validate проверяет ваши данные на основе вашей модели. Вы можете найти детали здесь

...