1👍
✅
You’ll have to make it a separate validator; you are passing the second regular expression into the RegexValidator()
object as a message.
Just use a simple function that validates the value; you don’t need a regular expression here, you want to invalidate values instead. Writing a regular expression that matches only on a negative gets complicated and is not what you want to do here:
from django.core.exceptions import ValidationError
forbidden = {'login', 'logout'}
def not_forbidden(value):
if value in forbidden:
raise ValidationError(u'%s is not permitted as a username' % value)
username = models.CharField(max_length=14, blank=False, unique=True, validators=[
validators.RegexValidator(r'^[^:;\'\"<>!@#$%|\^&\*\(\)~`,.?/=\-\+\\\{\}]? [\w]+$'),
not_forbidden,
])
See Writing validators.
Source:stackexchange.com