Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何使用Google App Engine进行不区分大小写的过滤查询?_Django_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Django 如何使用Google App Engine进行不区分大小写的过滤查询?

Django 如何使用Google App Engine进行不区分大小写的过滤查询?,django,google-app-engine,google-cloud-datastore,Django,Google App Engine,Google Cloud Datastore,我在一个GAE Django项目中工作,我必须实现搜索功能,我编写了一个查询,它根据搜索关键字获取数据 portfolio = Portfolio.all().filter('full_name >=',key).filter('full_name <',unicode(key) + u'\ufffd') portfolio=portfolio.all() 将数据存储为全大写或全小写,可以选择删除标点符号并将所有空格更改为单个空格,还可以将非ASCII字符转换为某种合理的ASCII

我在一个GAE Django项目中工作,我必须实现搜索功能,我编写了一个查询,它根据搜索关键字获取数据

portfolio = Portfolio.all().filter('full_name >=',key).filter('full_name <',unicode(key) + u'\ufffd')

portfolio=portfolio.all()


将数据存储为全大写或全小写,可以选择删除标点符号并将所有空格更改为单个空格,还可以将非ASCII字符转换为某种合理的ASCII表示形式(当然,这比听起来更复杂)

这个问题的另一个解决方案(数据集很小)是在从数据存储调用结果后,用python过滤结果:

for each_item in list_of_results:
    if each_item.name.lower().rfind(your_search_term) != -1:
        #Your results action

感谢您回答Wooble。但是该项目是一个维护项目,因此已经有很多数据被许多页面使用。现在更改数据需要花费大量的精力,即更改所有呈现数据的视图。是否有任何方法使其与当前结构一起工作?您您不必对所有视图等进行更改。只需添加一个名为foo_uppercase的字段,并让一个任务一次检查所有实体1000个或其他内容,然后填写该字段。@Jason谢谢您的回答。但即使这样,也需要更改所有现有的数据存储值,以便在其中任何一个字段中更改此属性小写还是大写?我必须按照Wooble的建议去做。但是我认为应该有一些方法来实现不区分大小写的过滤。请告诉我。@anand我不认为有人在谈论更改现有值,只是创建一个新字段并用大写/小写版本填充它,然后搜索它。