Django不按非英文字母过滤

时间:2020-11-06 07:36:46

标签: python html django

在我的数据库中,我有带有斯拉夫字母(śćę等)的对象。即使我在模板中调用对象,它也可以正确显示在数据库,管理面板中。用户可以通过在文本输入框中提供所需的内容来搜索该对象:template.html

<input type="text" class="form-control" placeholder="Model" name="searched_model" id="searched_model" value="">

当我在视图中过滤对象数据库时,请执行以下操作:views.py

found_products = ProductBase.objects.filter(Q(model__contains=searched_model).order_by('model')

它过滤并正确显示,直到提供了从字母。 例如,用户希望具有模型属性的对象为:ObjectŚĆobject 如果他在我的搜索字段object中书写,它将找到并显示ObjectŚĆobject。 但是,如果他只写objectŚ甚至Ś都不会显示任何内容。

我的视图将found_products返回模板并显示在表template.html

{% for item in found_products %}
...
<td>
    {{item.model}}
</td>

我不知道问题出在哪里。在settings.py中,我有正确的LANGUAGE_CODE = 'pl-pl'

编辑: 我做了一些记录,当我显示搜索短语时,它显示正确的字符串。 当我在filter之后记录查询集时,它显示为空查询集。因此,问题肯定出在过滤数据上。

EDIT2: 使用其他日志记录方法时,在搜索SELECT时可以看到如下的nieokreś查询:

(0.000) SELECT "zam_produktbase"."id", "zam_produktbase"."ean", "zam_produktbase"."model", "zam_produktbase"."kolor", "zam_produktbase"."symbol", "zam_produktbase"."aktywny", "zam_produktbase"."zam_id" FROM "zam_produktbase" WHERE ("za
m_produktbase"."model" LIKE '%nieokreś%' ESCAPE '\' AND "zam_produktbase"."symbol" LIKE '%%' ESCAPE '\' AND "zam_produktbase"."kolor" LIKE '%%' ESCAPE '\') ORDER BY "zam_produktbase"."model" ASC; args=('%nieokreś%', '%%', '%%')

EDIT3: 看来问题出在我的sqlite数据库中。进行SELECT查询时,找不到非英文字母。

EDIT4: 这是大写字母的问题,不同的过滤器解决了这个问题。

0 个答案:

没有答案
相关问题