在CharField上执行max_length

时间:2019-03-11 09:03:29

标签: django django-models

我有一个CharField,在模型定义中将max_length设置为200。我能够将长度超过200的字符串保存到此模型的实例,而不会引发任何错误。将数据保存到CharField时,是否可以强制执行max_length?或者仅在ModelForms上强制执行此限制?

谢谢!

1 个答案:

答案 0 :(得分:1)

看起来它可能来自您的数据库。

  

该字段的最大长度(以字符为单位)。在数据库级别以及使用MaxLengthValidator在Django进行的验证中,都将强制使用max_length。

如果您未添加验证器,则好像仅在数据库端进行了检查。因此,也许您的数据库没有“理解”最大值,而只有一个最大值。在达到此最大值之前,它可以接受任何长度。

无论如何,您可以从应用程序中控制它,只需向此字段添加MaxLengthValidator(limit_value, message=None)。您会找到描述here