首页 > 解决方案 > 为什么我们使用序列化程序而不是完全清理来验证模型,或者我们应该互换使用它们?

问题描述

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

标签: djangoserializationdjango-rest-frameworkdjango-serializerdjango-validation

解决方案


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


推荐阅读