Как добавить вложенное поле сериализатора

У меня есть вложенный сериализатор, который создает объекты, как и положено, но при этом возвращает ошибку.

Модели:

class Trip(models.Model):
    startTime = models.DateTimeField()
    endTime = models.DateTimeField()

    def __str__(self):
        return str(self.startTime) + " - " + str(self.endTime)


class TripFaceDetection(models.Model):
    trip = models.ForeignKey(Trip, on_delete=models.CASCADE, blank=True)
    firstFace = models.DateTimeField()
    lastFace = models.DateTimeField()
    faceCount = models.IntegerField()

Сериализаторы:

class TripSerializer(serializers.ModelSerializer):
    faces = TripFaceDetectionSerializer()

    class Meta:
        model = Trip
        fields = ('id', 'startTime', 'endTime', 'faces')

    def create(self, validated_data):
        face_data = validated_data.pop('faces')
        trip = Trip.objects.create(**validated_data)
        TripFaceDetection.objects.create(trip=trip, **face_data)
        return trip

Объекты создаются, но я также получаю ошибку:

backend_1 | AttributeError: Получена ошибка AttributeError при попытке получить значение для поля faces на сериализаторе TripSerializer.

backend_1 | Поле сериализатора может быть названо неправильно и не соответствовать какому-либо атрибуту или ключу в экземпляре Trip.

Я понимаю, что у меня нет поля в модели Trip, но я ожидаю, что поскольку я определяю поле в сериализаторе и создаю его в методе create, он не должен возвращать эту ошибку.

Как я могу избавиться от этой ошибки, используя лица как для чтения/записи, так и оставляя структуру модели как есть?

Вернуться на верх