请帮助解决问题:
class SearchResultView(TemplateView):
template_name = "search_result.html"
def get_context_data(self, **kwargs):
context = super(SearchResultView, self).get_context_data(**kwargs)
location = self.request.GET['location']
locations_searched = Location.objects.filter(name__icontains=location)
context['locations_searched'] = locations_searched
return context
class AdvancedSearchForm(forms.Form):
location = forms.CharField(label=u"Локация:")
在位置字段中输入大写单词时,我可以在视图中看到结果,但是当没有大写时 - 视图中没有显示任何内容
谢谢!
答案 0 :(得分:4)
我猜您正在使用SQLite数据库并且在输入中有一些非ASCII字符。来自SQLite FAQs:
Unicode字符的不区分大小写的匹配不起作用。 SQLite的默认配置仅支持ASCII字符的不区分大小写的比较。这样做的原因是进行完全Unicode不区分大小写的比较和大小写转换需要的表和逻辑几乎是SQLite库大小的两倍。
Django'} documentation也提到了这一点:
对于所有SQLite版本,有一些反直觉 尝试匹配某些类型的字符串时的行为。这些是 在使用iexact或在Querysets中包含过滤器时触发...