Я сделал сериализатор, и я пытаюсь создать экземпляр Booking
из поля бронирования в сериализаторе после проверки данных POST. Однако, поскольку Booking
объект имеет внешние ключи, я получаю ошибку: ValueError: Cannot assign "4": "Booking.activity" must be a "Activity" instance.
Django Rest Framework - Получение экземпляра модели после сериализации
Вот мой вид функции:
@api_view(['POST'])
def customer_charge(request):
serializer = ChargeCustomerRequestSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
# trying to create an instance using the ReturnDict from the serializer
booking = Booking(**serializer.data['booking'])
booking.save()
Serializers.py где BookingSerializer
является ModelSerializer
class ChargeCustomerRequestSerializer(serializers.Serializer):
booking = BookingSerializer()
customer = serializers.CharField(max_length=255)
class BookingSerializer(serializers.ModelSerializer):
class Meta:
model = Booking
fields = '__all__'
# I wanted to view the instances with the nested information available
# but this breaks the serializer validation if it's just given a foreign key
# depth = 1
Что это правильный способ создания экземпляра модели из вложенного сериализатора?