【问题标题】:Django: icontains over unicode stringDjango:unicode字符串上的icontains
【发布时间】:2017-04-26 15:27:06
【问题描述】:

我的客户提出了一些非常奇怪的问题,但这在日常操作中很有意义。

我有一个名字为 Nicolás 的用户,我正在过滤名字,值为 Nicolas。

有没有办法显示结果? 谢谢!

目前为止的代码

    q = request.GET['q']

    q_res = Member.objects.filter(
        Q(first_name__icontains = q)|
        Q(last_name__icontains = q)
    )

【问题讨论】:

    标签: python django unicode django-models


    【解决方案1】:

    您可以使用unaccent 进行不区分重音的查询。这仅适用于 postgres,我相信在 Django 1.8+ 上。

    如果这不适用于您,那么您不能直接执行此操作。一种可能的替代方法是将字符串的非重音版本存储在新字段中并通过该字段进行搜索。有一个 library 用于从 unicode 中获取最接近的常规字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多