如何为models.TextField()设置最小长度?

22

对于CharField,似乎只有max_length的限制。但是对于TextField(),是否有办法强制限制其至少要有100个字符?

4个回答

30

8
在这种情况下,您需要从django.core.validators导入MinLengthValidator资源,代码如下: from django.core.validators import MinLengthValidator 要使用此资源,必须按以下方式编写模型:
variable = models.TextField(
        validators=[
            MinLengthValidator(50, 'the field must contain at least 50 characters')
            ]
        )

6

在声明Django表单时

cell_phone=forms.CharField(max_length=10,min_length=10);

在Django模板中呈现表单字段时。
{% render_field form1.cell_phone  minlength="10" maxlength="10" %}

Underscore是令人困惑的


5

对于models.Models字段的验证:

from django.db.models import TextField
from django.db.models.functions import Length

TextField.register_lookup(Length, 'length')

class Foo(models.Mode):
    text_field_name = models.TextField()
    
    class Meta:
        constraints = [
            models.CheckConstraint(
                check=Q(text_field_name__length__gte=10),
                name="text_field_name_min_length",
            )
        ]

使用约束将在数据库级别上创建验证(我认为),这将在save()时调用。这对于CharField也适用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接