简体   繁体   English

Django将小写和​​大写的相同字段视为2个不同的实体

[英]Django is treating same field which are lowercase and upper case as 2 different entities

I am creating models in django and then entering data in admin panel我在 django 中创建模型,然后在管理面板中输入数据

class Song(models.Model):
  name = models.CharField(max_length=30,validators=[alphanumeric]).title()
  slug=models.SlugField(default="",blank=True,null=False,db_index=True)
  artist = models.CharField(max_length=30,validators=[alphanumeric])
  genre = models.CharField(max_length=30,validators=[alphanumeric])
  language = models.CharField(max_length=30,validators=[alphanumeric])
  image = models.ImageField(null=True,blank=True)

But the issue is when I am entering "AceHunter" or "acehunter" as artist it is treating as different artists although I want them as one....但问题是当我以艺术家身份进入“AceHunter”或“acehunter”时,它被视为不同的艺术家,尽管我希望他们成为一个......

Please can someone help me what error I am making?请问有人可以帮我我犯了什么错误吗?

You can use PostgreSQL CIText which is case-insensitive text field or validate like this:您可以使用 PostgreSQL CIText这是不区分大小写的文本字段或像这样验证:

from django.core.exceptions import ValidationError
class Song(models.Model):
  name = models.CharField(max_length=30,validators=[alphanumeric]).title()
  slug=models.SlugField(default="",blank=True,null=False,db_index=True)
  artist = models.CharField(max_length=30,validators=[alphanumeric])
  genre = models.CharField(max_length=30,validators=[alphanumeric])
  language = models.CharField(max_length=30,validators=[alphanumeric])
  image = models.ImageField(null=True,blank=True)
  def validate(self):
      if Song.objects.filter(artist__iexact=self.artist).exists():
          raise ValidationError('This artist already exists.')

Also, check this form另外,检查这个表格

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM