Django:Django模型属性的大小写值应视为相同

Django:Django模型属性的大小写值应视为相同,django,Django,我有一个模范城市: class City(models.Model): state = models.ForeignKey('State', on_delete=models.SET_NULL, null=True) name_regex = RegexValidator(regex=r'^[a-zA-Z]+$', message="Name should only consist of characters")

我有一个模范城市:

class City(models.Model):
    state = models.ForeignKey('State', on_delete=models.SET_NULL, null=True)
    name_regex = RegexValidator(regex=r'^[a-zA-Z]+$',
                                message="Name should only consist of characters")
    name = models.CharField(validators=[name_regex], max_length=100)
    postalcode = models.IntegerField(unique=True)

    class Meta:
        unique_together = ["state", "name"]

在这个模型中,所有大小写(大写/小写)的城市名称应与Udaipur/Udaipur/Udaipur一样处理。

在您的模型中尝试一下,它会为您带来好处

class NameField(models.CharField):
    def __init__(self, *args, **kwargs):
        super(NameField, self).__init__(*args, **kwargs)

    def get_prep_value(self, value):
        return str(value).lower()

class City(models.Model):
    state = models.ForeignKey('State', on_delete=models.SET_NULL, null=True)
    name_regex = RegexValidator(regex=r'^[a-zA-Z]+$',
                                message="Name should only consist of characters")
    name = NameField(validators=[name_regex], max_length=100)
    postalcode = models.IntegerField(unique=True)

    class Meta:
        unique_together = ["state", "name"]

非常感谢。但我得到了一个错误:AttributeError:module'django.db.models'没有属性'NameField'。如何解决这个错误?我已经更新了我的答案,现在你可以试一试了。在代码中更新后,请确保执行迁移。