Django Postgres不区分大小写的Textfield和CitText

Django Postgres不区分大小写的Textfield和CitText,django,postgresql,python-3.x,Django,Postgresql,Python 3.x,对于我的Django应用程序,我使用PostgreSQL(9.3),我希望在数据库中使用不区分大小写的文本。为此,Popstgres有一个名为“citext”的“新”扩展名 据我所知,django无法直接使用此扩展,因此我创建了一个自定义字段: class RsCharField(models.CharField): ... def db_type(self, connection): return 'citext' 我使用CharField作为基类,因为我仍然

对于我的Django应用程序,我使用PostgreSQL(9.3),我希望在数据库中使用不区分大小写的文本。为此,Popstgres有一个名为“citext”的“新”扩展名

据我所知,django无法直接使用此扩展,因此我创建了一个自定义字段:

class RsCharField(models.CharField):
    ...
    def db_type(self, connection):
        return 'citext'
我使用CharField作为基类,因为我仍然希望django能够设置最大长度的所有好处以及随之而来的验证器

数据库创建正确,我最终得到了citext表:

 description       | citext                   | not null
但当我执行查询时,django将te查询转换为:

SELECT * FROM .... WHERE mytable.description::text LIKE 'TEST%'
这仍然是区分大小写的。当我手动选择并删除::文本时,它不区分大小写

问题:我做错了什么,在执行查询时,如何使我的CharFields表现得像django中的不区分大小写字段


注意:最重要的是,我希望我的索引的行为类似于不区分大小写的索引

使用django.contrib.postgres.fields.citext中提供的类

您可以共享您的queryset筛选器吗?