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

ryo*_*tic 6 django django-models django-validation

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

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
Run Code Online (Sandbox Code Playgroud)

我可以在模型本身中完成这个任务吗?或者我是否必须对 forms.py 做一些事情,以便用户无法发布标题中带有特殊字符的表单。我究竟怎样才能做到这一点?

Wil*_*sem 9

validators=\xe2\x80\xa6您可以使用参数\xc2\xa0 [Django-doc]添加验证器并使用反向正则表达式

\n
from django.core.validators import RegexValidator\n\nclass Article(models.Model):\n    title = models.CharField(\n        max_length=100,\n        validators=[RegexValidator(\'[+-/%]\', inverse_match=True)]\n    )\n    # …
Run Code Online (Sandbox Code Playgroud)\n