django - 为什么我们使用序列化程序而不是完全清理来验证模型,或者我们应该互换使用它们?
问题描述
我正在使用 Django Rest Framework 的 API 服务器。我一直在使用模型的 clean 方法来验证我的模型并在视图中调用 full clean。它不适用于每种情况。我感觉我的逻辑有一些错误。我从未使用过任何序列化程序,也不知道在使用完全清洁时是否应该使用它。所以我的问题是如何以适当的方式验证我的模型。
解决方案
序列化器不仅仅用于模型验证。您还可以验证 POST 请求的有效负载,将您的 python 字典(或列表)转换为 json,反之亦然,等等。此外,通过 write_only/read_only 配置,序列化程序为您提供了一种简单的方法来确定哪些模型字段是客户端需要在有效负载中提供,其中哪些将仅包含在响应中。查看文档https://www.django-rest-framework.org/api-guide/serializers/以获得更好的理解。
推荐阅读
- c# - Web Deploy 上的“字符串或二进制数据将被截断”,而不是在调试模式下
- spring - JpaRepository Distinct 不适用于多个字段
- amazon-s3 - 上传到 S3 的骆驼路由失败
- apache-flink - Flink SQL Client 环境配置读取 CSV 文件作为源流表
- image - 如何从用 fortran 90 编写的 3x3 矩阵写入 3D 图像?
- javascript - nodelist 有时会在函数完成后加载
- arrays - 基于数组中的最大数量迭代的算法的复杂性?
- libreoffice - libreoffice 立即退出 - 在 Ubuntu Linux 上
- c# - 是否可以使 json 反序列化与分配值的枚举一起使用?
- selenium - 如果基于 selenium 机器人框架中的元素可见性条件,如何运行 if else 条件?