django:从仅限网络服务的应用程序中删除`blank=True` 是否安全?

我正在使用现有数据库开始一个项目。生成的模型inspectdb

(...null=True, blank=True)

在各个领域。该文档提到该blank参数与 django 形式有关。我正在制作一个 Web 服务项目,使用django rest 框架和 django ORM。绝对没有MVC 的视图组件(自动生成的表单、html 模板等)。

这是否意味着blank=True从我的模型中移除是安全的?


波斯汪
浏览 161回答 3
3回答

回首忆惘然

可能不是。无论您的服务是什么,您可能都希望验证数据。Django 的验证依赖于它blank=True。它不仅适用于表单和模板。从文档:blank 与验证相关。

三国纷争

Django Rest Framework 将blank在序列化程序验证中使用模型字段上的属性。当blankis 时False,这是默认值,如果在 POST 请求中没有为此字段设置值,则 ModelSerializer 将引发 ValidationError 。基本上,如果您blank=True从一个字段中删除并尝试为该字段创建一个没有值的记录,您将收到来自服务器的 400 响应。什么都不会中断,只是这个请求将无法创建资源。在我的书中,我称之为保险箱。这实际上只是归结为您是否希望该字段是必需的。但既然你有null=True,那似乎也合情合理blank=True。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python