【问题标题】:Why we use serializers instead of full clean to validate models or should we use them interchangeably?为什么我们使用序列化程序而不是完全清洁来验证模型,或者我们应该互换使用它们?
【发布时间】:2020-01-14 12:23:53
【问题描述】:

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

【问题讨论】:

    标签: django serialization django-rest-framework django-serializer django-validation


    【解决方案1】:

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

    【讨论】:

    • 我明白你的意思。但实际上我的问题是,为什么我们在进行模型验证时需要序列化程序验证。
    • 因为:1.这是模型验证之前的一步 2.您可以在模型中添加不需要的自定义验证字段 3.它是 DRF 附带的开箱即用功能,可帮助您编程更快
    猜你喜欢
    • 2012-07-21
    • 2012-09-01
    • 2013-08-11
    • 2021-10-25
    相关资源
    最近更新 更多