gpt4 book ai didi

django-non rel 和 dbindexer 排序属性

转载 作者:太空宇宙 更新时间:2023-11-03 15:33:47 24 4
gpt4 key购买 nike

我正在使用 django-nonrel 进行测试项目。

启用管理界面并向数据库添加一些实体后,我向 ModelAdmin 类添加了一个 search_field。当我尝试搜索时,出现以下错误:

DatabaseError: Lookup type 'icontains' isn't supported

为了解决这个问题,我添加了一个这样的索引:

from models import Empresa
from dbindexer.api import register_index

register_index(Empresa, {'nombre': 'icontains'})

但现在我收到以下错误:

First ordering property must be the same as inequality filter property, if specified for this query; received key, expected idxf_nombre_l_icontains

我是否正在尝试做一些 django-nonrel 和 dbindex 尚不支持的事情?

在此先感谢您的帮助

最佳答案

我也有同样的问题(另外一个案例),知道原因,但目前没有解决办法。

这是因为 GAE 的数据库限制,如果查询包含不等式比较,即 ' < , > , >= ' 或类似的东西,实体的任何成员的任何排序(除了使用的成员不等式比较)之前必须首先对不等式比较的成员进行排序。

如果我们直接使用 GAE 的数据库,这个限制可以很容易地克服,方法是首先由首先使用不等式的成员设置顺序,而不是用你想排序的任何东西排序。

不幸的是,django-nonrel 和 djangoappengine 的数据库包装器似乎无法做到这一点(我已经尝试使用 django 模型的第一种技术的顺序,仍然错误,也许只有我),更不用说使用 dbindexer作为 djangoappengine.db 的包装器,它本身就是 GAE 数据库的包装器……

最重要的是,对于这种困惑情况,调试可能是一 field 狱。对于这种情况,您可能希望直接使用 GAE 数据存储,或者等待 djangoappengine 团队提出更好的替代方案。

关于django-non rel 和 dbindexer 排序属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com