来自ID的Django rest框架序列化程序对象



我有这个序列化程序:

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)调用序列化程序的组合

相关内容

最新更新