django 如何禁止向CharField输入特定字符

eqqqjvef  于 2023-05-23  发布在  Go
关注(0)|答案(1)|浏览(177)

我有一个模型,我想禁止在标题字段中输入特殊字符(+,-,/,%等):

class Article(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    content = models.TextField()
    date_posted = models.DateTimeField(default=timezone.now)

    def __str__(self):
        return self.title

我可以在模型本身中实现这一点吗?或者我必须对www.example.com做些什么forms.py,这样用户就不能发布标题中带有特殊字符的表单。我到底该怎么做?

cidc1ykv

cidc1ykv1#

你可以添加一个带有**validators=…**参数的验证器[Django-doc],并使用一个逆 regex

from django.core.validators import RegexValidator

class Article(models.Model):
    title = models.CharField(
        max_length=100,
        validators=[RegexValidator('[+-/%]', inverse_match=True)]
    )
    # …

相关问题