在我的数据库中,我有带有斯拉夫字母(śćę等)的对象。它正确地显示在我的数据库、管理面板中,甚至在我调用模板中的对象时也是如此。用户可以通过在文本输入框中提供所需内容来搜索此对象:template.html
<input type="text" class="form-control" placeholder="Model" name="searched_model" id="searched_model" value="">
当我在视图中筛选对象数据库时,howewer: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
之后记录查询集时,它会显示空的查询集。所以问题肯定在于过滤数据
编辑2:
使用其他日志记录方法时,我可以在搜索nieokreś
时看到如下所示的SELECT
查询:
(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ś%', '%%', '%%')
编辑3: 看起来问题出在我的sqlite数据库中。执行SELECT查询时,未找到非英语字母
编辑4: 这是大写字母的问题,不同的过滤解决了这个问题
目前没有回答
相关问题 更多 >
编程相关推荐