Django 表单验证与 DRF 序列化器验证

Sam*_*Sam 4 python django django-forms django-rest-framework

我是 django 中 API 创建的新手。我检查了 DRF 序列化器,发现它们在操作数据库中的模型时很有用。我的 API 不使用基于表单的模型。

所以我的问题是:在我看来,使用 DRF 验证器比使用 django 表单验证器能得到更多什么呢?也许内容类型更方便(application/x-www-form-urlencoded vs application/json)?

Lin*_*via 5

DRF 的序列化器很好地集成在框架内。无论它们是否基于模型,您都将拥有一个漂亮的可浏览 UI 来免费使用,并且您可以获得 OpenAPI 模式生成。可能还有其他我没有想到的事情。

序列化器可以做而表单不能做的事情:

  • 嵌套数据 - 尽管您可以使用表单集获得一些结果。
  • 超链接关系字段
  • 空字段和空白字段之间的区别 - HTML 表单无法做到这一点
  • 与基于通用类的视图或视图集进行开箱即用的集成

请注意,即使您不使用序列化器,您仍然可以从 DRF 中受益。DRF 部件是松散耦合的。