Объект сериализатора структуры отдыха Django из ID

У меня есть этот сериализатор:

class OrderLineSerializer(serializers.ModelSerializer):
    id = serializers.ReadOnlyField(source="item.id")
    name = serializers.ReadOnlyField(source="item.name")
    price = serializers.ReadOnlyField(source="item.price")
    quantity = serializers.IntegerField(
        validators=[MinValueValidator(0), MaxValueValidator(MAXNUMBERSIZE)]
    )


    class Meta:
        model = OrderLine
        fields = ("id", "name", "price", "quantity", "sub_total")

и это нормально, когда я отправляю данные пользователю, но есть ли способ сериализовать данные, которые я получаю от API без создания еще одного сериализатора.

если я получаю некоторый запрос API с таким содержанием

{id : 123, quantity : 10}

Он не получает элемент из базы данных.

есть ли способ сделать это или я должен создать специальный сериализатор?

Я считаю, что выделенный сериализатор - это то, что нужно, во-первых, вам не нужна сложность использования одного сериализатора. А чтобы создать новый для вашего ввода, потребуется всего 3 строки. Так что просто сделайте специальный сериализатор.

Отвечаю на свой собственный вопрос.

Сделать это на самом деле довольно просто. Это просто комбинация использования required=False в полях сериализатора и вызова сериализатора с помощью MySerializer(data=data, partial=True)

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