- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Django 在验证 ModelForm 时不考虑 TextField 模型字段的 max_length 属性。
所以我定义了一个继承自 models.TextField 的 LimitedTextField,并添加了类似于 models.CharField 的验证位:
from django.core import validators
class LimitedTextField(models.TextField):
def __init__(self, *args, **kwargs):
super(LimitedTextField, self).__init__(*args, **kwargs)
self.max_length = kwargs.get('max_length')
if self.max_length:
self.validators.append(validators.MaxLengthValidator(self.max_length))
def formfield(self, **kwargs):
defaults = {'max_length': self.max_length}
defaults.update(kwargs)
return super(LimitedTextField, self).formfield(**defaults)
但这仍然对 ModelForm 验证没有影响。
我错过了什么?
最佳答案
从 Django 1.2 开始,这可以由模型级别的验证器完成,如下所述: https://docs.djangoproject.com/en/stable/ref/validators/
from django.core.validators import MaxLengthValidator
class Comment(models.Model):
comment = models.TextField(validators=[MaxLengthValidator(200)])
从 Django 1.7 开始,您可以使用仅在客户端强制执行的 max_length
。 See here
关于ModelForm 的 Django TextField max_length 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3206905/
我如何访问 max_length Django 中的模型字段?我正在用 REST 框架编写一个序列化程序,我想编写一个自定义验证函数来验证长度。请注意,我使用的是 SQLite,因此数据库本身不强制执
我正在开发 Django 应用程序,我想知道是否有任何理由为模型字段(特别是 TextField,但我对所有字段都感兴趣)显式设置 max_length . 它是减少表的大小,还是提高效率?较小的 m
我希望一个模型属性的整数值是另一个模型属性的 max_length,如下所述“capacity = models.IntegerField(max_length=Concerthall.capac
所以我有这个预先存在的数据库,我正在尝试使用 Django 连接它,我已经对数据库进行了内省(introspection),我只是在实际做任何事情之前清理模型,我遇到了一个路障。其中一个数据库表有一行
我在模型中有一个字段, name = models.CharField(max_length=2000) 输入的数据是, name='abc' django 模型的 max_length 设置为 20
我有这个模型字段: id_student = models.PositiveIntegerField(primary_key=True, max_length=10) max_length限制不起作用
我编写了以下脚本来获取指定表的列上的一些数据: DECLARE @QueryTable varchar(35); SET @QueryTable = 'Test'; SELECT DISTINCT
我使用的是 Django 1.9,其中用户名的字符数限制为 30 个。为了克服这个问题,我创建了一个自定义用户模型,如下所示: class User(AbstractUser): pass #
我正在尝试使我的管理员登录字段大于 30 个字符,因为我使用的是自定义电子邮件身份验证后端,它并不真正关心用户名字段有多长。 我想建立一个monkey_patch将更改应用于所有管理站点的应用程序。
我在 django 中有以下模型: class Node(models.Model): name = models.CharField(max_length=255) 以及上述模型的子类: c
我遇到了一个非常奇怪的数据库错误: psycopg2.DataError: value too long for type character varying(4) 当我试图在我的调查应用程序中保存一
MySQL 在属性 max_length 中返回当前字段值长度。 我有办法获得正确的值吗? ie 字段part_code是一个varchar(32),如果它包含“ABC”的值,则返回3,而不是预期的结
这是我的模型: class Position(models.Model): map = models.ForeignKey(Map,primary_key=True) #members
在不得不增加模型中另一个字段的 max_length 之后,我开始怀疑:也许这不是方法? 我正在从外部 API 获取数据,因此我无法检查最大长度是多少。假设我猜测该字段可以有 100 个字符 - 因为
我有一个提供的数据库模式,我想为其创建一个 Django 应用程序。架构中的许多表共享一组通用的列,例如 name 和 date_created。这促使我创建一个包含这些列的抽象 Standard_m
嗨,有没有一种方法可以在 Django 中过滤字段属性而不是字段值? 例如,对于我的 GUI 布局,我想知道按 max_length 排序的字段的顺序。我的模型: class Person(model
我想用我的 Django 模型覆盖文件。因此,如果我上传“一个”然后上传“两个”,“两个”应该覆盖“一个”(在文件系统上)。但是我得到一个错误。 这是我的模型: class StudentAssign
我正在尝试创建一个选择有限的字段: Action_Types=( ('0','foo'), ('1','bar'),
假设我有一个类似这样的 Django 类: class Person(models.Model): name = models.CharField(max_length=50) # .
我使用 Django allauth 作为我的 Django 站点的用户帐户框架。文档显示有一个 ACCOUNT_USERNAME_MIN_LENGTH但是由于某种原因没有 ACCOUNT_USERN
我是一名优秀的程序员,十分优秀!