Django измените мою миграцию напишите в миграциях
Я хочу изменить предыдущую миграцию - в моделях у меня есть это поле:
number = models.CharField('Number', max_length=8, unique=True, blank=True, editable=False, validators=[
MinLengthValidator(8),
RegexValidator(
regex=r'^[А-ЯҐЄІЇ]{2}-\d{5}$',
message='Example TP-00001',
),
])
Я хочу, чтобы мое поле выглядело следующим образом:
number = models.CharField('Number', max_length=11, unique=True, blank=True, editable=False, validators=[
MinLengthValidator(11),
RegexValidator(
regex=r'^[А-ЯҐЄІЇ]{2}-\d{8}$',
message='Example TP-00000001',
),
])
В regex я изменил количество цифр с 5 на 8. В моем файле миграции у меня есть следующее:
migrations.AlterField(
model_name='book',
name='number',
field=models.CharField(blank=True, editable=False, max_length=8, unique=True,
validators=[django.core.validators.MinLengthValidator(8),
django.core.validators.RegexValidator(
message='Example: TP-00001',
regex='^[А-ЯҐЄІЇ]{2}-\\d{5}$')], verbose_name='Number'),
),
]
Я пытался написать func перед этим, который изменил мою миграцию:
def update_number(apps, schema):
Book = apps.get_model('library', 'Book')
for bb in Book.objects.all():
bb.number = bb.number(regex='^[А-ЯҐЄІЇ]{2}-\\d{8}$')
bb.save(update_fields=['number'])
Здесь я пытался изменить номер с 5 на 8 .Что я делаю не так? Пожалуйста, помогите?