我有一个使用postgres的Django应用程序。我知道如果我在数据库中安装了unaccent extension from postgres,我可以像文档中描述的那样应用过滤器,忽略单词中的重音:
>>> City.objects.filter(name__unaccent="México")
['<City: Mexico>']
>>> User.objects.filter(first_name__unaccent__startswith="Jerem")
['<User: Jeremy>', '<User: Jérémy>', '<User: Jérémie>', '<User: Jeremie>']
字符串
在这个应用程序中,我也使用了django-filter库。我想知道是否有一种方法可以将unaccent扩展与django-filter结合使用,以避免重写我所有的搜索函数。下面是用于过滤的代码示例:
class BranchesFilter(django_filters.FilterSet):
name = CharFilter(
label='Filial',
label_suffix='',
field_name='name',
lookup_expr='icontains',
)
class Meta:
model = Branches
fields = '__all__'
型
多谢帮忙。
1条答案
按热度按时间bakd9h0s1#
如果有人有同样的问题,请回答这个问题。事实证明,这比我想象的要简单得多。通过在查找表达式之前添加 unaccent__(就像文档中描述的那样),扩展可以与django-filters一起使用。下面是问题中提供的示例:
字符串