为什么我们使用序列化器而不是完全清理来验证模型,或者我们应该互换使用它们?

Why we use serializers instead of full clean to validate models or should we use them interchangeably?

我正在 API 服务器上工作,它使用 Django Rest Framework。我一直在使用模型的清理方法来验证我的模型并在视图中调用完全清理。它并不适用于所有情况。我感觉我的逻辑有一些错误。我从未使用过任何序列化程序,也不知道在使用完全清理时是否应该使用它。所以我的问题是如何以正确的方式验证我的模型。

序列化程序不仅仅用于模型验证。您还可以验证 POST 请求的有效负载,将您的 python 字典(或列表)转换为 json,反之亦然,等等。 此外,使用 write_only/read_only 配置,序列化器为您提供了一种简单的方法,可以确定客户端需要在有效负载中提供哪些模型字段,以及哪些模型字段将仅包含在响应中。查看文档 https://www.django-rest-framework.org/api-guide/serializers/ 以获得更好的理解。