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非rel和dbindexer排序属性_Django_Google App Engine_Django Nonrel - Fatal编程技术网

django非rel和dbindexer排序属性

django非rel和dbindexer排序属性,django,google-app-engine,django-nonrel,Django,Google App Engine,Django Nonrel,我正在使用django Nonl进行一个测试项目 启用admin接口并向数据库添加一些实体后,我向ModelAdmin类添加了一个search_字段。当我尝试搜索时,出现以下错误: 数据库错误:不支持查找类型“icontains” 为了解决这个问题,我添加了如下索引: from models import Empresa from dbindexer.api import register_index register_index(Empresa, {'nombre': 'icontains'

我正在使用django Nonl进行一个测试项目

启用admin接口并向数据库添加一些实体后,我向ModelAdmin类添加了一个search_字段。当我尝试搜索时,出现以下错误:

数据库错误:不支持查找类型“icontains”

为了解决这个问题,我添加了如下索引:

from models import Empresa
from dbindexer.api import register_index

register_index(Empresa, {'nombre': 'icontains'})
但现在我得到了以下错误:

如果为此查询指定,则第一个排序属性必须与不等式筛选器属性相同;已收到密钥,预期为idxf\u nombre\u l\u icontains

我正在尝试做django Nonl和dbindex还不支持的事情吗


提前感谢您提供的帮助

我通过更改ModelAdmin子类中的ordering属性来修复了它:

class EmpresaAdmin(admin.ModelAdmin):
    search_fields = ('nombre',)
    #order by the atribute autogenerated by dbindex
    ordering = ('idxf_nombre_l_icontains',)
有人知道更好的解决方法吗?

我有同样的问题(在另一个案例中),知道原因,但目前没有解决方案

这是因为GAE的数据库限制,即如果查询包含不等式比较,即“<,>,>=”或类似的内容,则实体中任何成员(使用不等式比较的成员除外)的任何排序都必须先使用不等式比较的成员排序

如果我们直接使用GAE的数据库,这个限制可以通过首先使用不等式的成员设置顺序来轻松克服,而不是使用您想要排序的任何东西进行排序

不幸的是,django Nonl和DjangAppEngine的数据库包装器似乎无法做到这一点(我已经尝试了使用django模型的order by first技术,仍然是错误的,可能只是我),更不用说使用dbindexer作为DjangAppEngine.db的包装器了,DjangAppEngine.db本身就是GAE数据库的包装器


底线是,调试可能是这场混乱的地狱。您可能只想在这种情况下直接使用GAE数据存储,或者等待Djangappengine团队提出更好的替代方案。

Daniel,我尝试过这个,但它不起作用。。你还有别的解决办法吗?