[Django]-Django regex validator message has no effect

42๐Ÿ‘

โœ…

How about adding the error code:

user = CharField(
    max_length=30,
    required=True,
    validators=[
        RegexValidator(
            regex='^[a-zA-Z0-9]*$',
            message='Username must be Alphanumeric',
            code='invalid_username'
        ),
    ]
)
๐Ÿ‘คHieu Nguyen

8๐Ÿ‘

I was having trouble running a RegexValidator, too. But I was trying to raise the error by saving the model instance. It will not work this way! Only when using ModelForms the validators are called automatically.

In https://docs.djangoproject.com/en/dev/ref/validators/#how-validators-are-run

Note that validators will not be run automatically when you save a model, but if you are using a ModelForm, it will run your validators on any fields that are included in your form.โ€

๐Ÿ‘คjrvidotti

0๐Ÿ‘

Try passing the messsage as,

user = CharField(
    max_length=30,
    required=True,
    validators=[
        RegexValidator(
            regex=r'^[a-zA-Z0-9]*$',
            message=_('Username must be Alphanumeric'),
        ),
    ]
)
๐Ÿ‘คViren Rajput

0๐Ÿ‘

a validate user name here should contain at least one minuscule letter, one capital letter and one numeric, if i understand your code.
to complete Virendra Rajput answer correct the regex with that:
regex=r'^[a-zA-Z0-9]*$'   start with the r'
๐Ÿ‘คdrabo2005

Leave a comment