正则表达式验证器生成迁移而无需更改

Regex validator produce migration without changes

Django 使用 RegexValidator 检测模型中的变化, 从 django.core.validators 导入 RegexValidator

url_regex_validator = RegexValidator(
        regex=r'^(\w{1,5}:\/\/)([\w\+\/-]+)([\.]\w{1,4})$',
        message="Error invalid URL")

型号:

class MyModel(models.Model):
path = models.CharField(max_length=200, default=None, blank=True, null=True, validators=[url_regex_validator])

每个

python manage.py makemigrations

  • Alter field path on mymodel

在这个模型中产生一个关于正则表达式验证器的新迁移。有什么想法吗?

正如我在这里发现的那样 https://code.djangoproject.com/ticket/25280#no1

解决此问题的快速解决方法是复制粘贴 django.core.validators 中的代码:

from django.core.validators import RegexValidator
    
    url_regex_validator = [RegexValidator(
            regex=r'^(\w{1,5}:\/\/)([\w\+\/-]+)([\.]\w{1,4})$',
            message="Error invalid URL")]

class MyModel(models.Model):
    slug = models.SlugField(unique=True, validators=url_regex_validator)