在CharField上执行max_length

问题描述 投票:1回答:1

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

谢谢!

django django-models
1个回答
1
投票

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

字段的最大长度(以字符为单位)。 max_length在数据库级别和Django使用MaxLengthValidator进行验证时强制执行。

如果你没有添加验证器,它看起来只在db端检查过。所以也许你的数据库不会“理解”最大值,只有最大值。直到最大值,它接受任何长度。

无论如何,你可以从应用程序控制,只需添加到这个字段一个MaxLengthValidator(limit_value, message=None)。你会找到一个描述here

© www.soinside.com 2019 - 2024. All rights reserved.