如何禁止特定字符输入到 CharField
How to disallow specific character input to a CharField
我有一个模型,我想在其中禁止在标题字段中输入特殊字符(+、-、/、% 等):
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
我可以在模型中完成这个吗?或者我是否必须对 forms.py 做一些事情,以便用户无法 post 标题中带有特殊字符的表单。我究竟该如何做到这一点?
您可以使用 validators=…
parameter [Django-doc] 添加验证器并使用反 regex:
from django.core.validators import RegexValidator
class Article(models.Model):
title = models.CharField(
max_length=100,
validators=[<strong>RegexValidator('[+-/%]', inverse_match=True)</strong>]
)
# …
我有一个模型,我想在其中禁止在标题字段中输入特殊字符(+、-、/、% 等):
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
我可以在模型中完成这个吗?或者我是否必须对 forms.py 做一些事情,以便用户无法 post 标题中带有特殊字符的表单。我究竟该如何做到这一点?
您可以使用 validators=…
parameter [Django-doc] 添加验证器并使用反 regex:
from django.core.validators import RegexValidator
class Article(models.Model):
title = models.CharField(
max_length=100,
validators=[<strong>RegexValidator('[+-/%]', inverse_match=True)</strong>]
)
# …