Case insensitive Charfield in django models

天大地大妈咪最大 提交于 2019-12-04 05:03:43

To answer my own question:

I have found I can have clean method on my model. So I added

class Category(models.Model):
    name = models.CharField(max_length=200, unique=True)

    def clean(self):
        self.name = self.name.capitalize()

It is capitalising the first letter, which is then handled by the save method, which calls the validate_unique method to raise error.

Setting the column to case-insensitive collation should fix this. You may need to do it at the SQL level.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!