Валидация модели поля Джанго

У меня есть модель

class StudentBasicInfo(models.Model):
    usn = models.CharField(blank=False,max_length=10,unique=True,validators=[])

мой usn будет в формате [0-9][A-Za-z][A-Za-z][0-9][0-9][AZ][AZ][0-9][0-9][0-9]

Я не знаю, как написать проверочный код

1 ответ

Создать валидатор. Я бы предложил RegexValidator, например, так:

from django.core.validators import RegexValidator

...

class StudentBasicInfo(models.Model):
    usn = models.CharField(blank=False,max_length=10,unique=True, validators=[RegexValidator(regex='[0-9][A-Za-z]{2}[0-9]{2}[A-Z]{2}[0-9]{3}', message='Error message goes here')])

Я позволил себе сократить ваше регулярное выражение, объединив группы, которые были вместе. Если вы хотите, чтобы ошибка появлялась рядом с полем в админке, вам придется перегрузить ModelForm.

Другие вопросы по тегам