- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用“django nonrel”创建了一个应用程序,并使用“django dbindexer”来允许正常的 Django 查找。设置文件如下
我的项目/settings.py
from djangoappengine.settings_base import *
import os
DATABASES['native'] = DATABASES['default']
DATABASES['default'] = {'ENGINE': 'dbindexer', 'TARGET': 'native'}
AUTOLOAD_SITECONF = 'indexes'
SITE_ID = 1
SECRET_KEY = '=r-$b*8hglm+858&9t043hlm6-&6-3d3vfc4((7yd0dbrakhvi'
AUTH_PROFILE_MODULE = 'myapp.UserProfile'
DBINDEXER_BACKENDS = (
'dbindexer.backends.BaseResolver',
'dbindexer.backends.FKNullFix',
'dbindexer.backends.ConstantFieldJOINResolver',
)
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.sites',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.staticfiles',
'django.contrib.messages',
'djangotoolbox',
'autoload',
'dbindexer',
'myapp',
'djangoappengine',
)
MIDDLEWARE_CLASSES = (
'autoload.middleware.AutoloadMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.media',
'django.core.context_processors.static',
'django.core.context_processors.request',
)
TEST_RUNNER = 'djangotoolbox.test.CapturingTestSuiteRunner'
ROOT_URLCONF = 'myproject.urls'
gettext = lambda s: s
SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__))
temp = os.path.join(SETTINGS_PATH, os.pardir)
ROOT = os.path.join(os.path.normpath(temp))
STATIC_ROOT = os.path.join(ROOT, 'collected_static')
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
AUTH_PROFILE_MODULE = 'myapp.UserProfile'
我在“myapp”文件夹中创建了一个“dbindexes”文件来添加索引定义。
我的应用程序/dbindexes.py
from models import *
from dbindexer.lookups import StandardLookup
from dbindexer.api import register_index
register_index(myModel, {'first_name': 'icontains',
'last_name': 'icontains',
})
主文件夹中的“indexes”文件如下所示:
索引.py
from dbindexer import autodiscover
autodiscover()
现在,当我使用已注册的索引查询“myModel”时,它总是返回一个空列表。似乎索引已被正确发现,因为它不会引发任何错误。但是,当我在“myapp/dbindexes.py”文件中将“图标”更改为“包含”时,它给出了预期的结果。
有人可以指导我解决问题。
谢谢!!!
最佳答案
dbindexer 本质上会自动反规范化您的实体并添加额外的可索引字段以帮助查询。例如,GAE 不执行不区分大小写的搜索或子字符串搜索,因此如果您需要使用 icontains
,它会生成小写子字符串列表并将其存储在可索引的 ListField 中。当您编写实体时会发生这种情况。
请注意,这最终可能会非常昂贵,因为它会使您的数据存储和使用的索引膨胀。
运行查询时,您只能查询数据存储中的实体。如果您的 dbindexes.py 在某一时刻指定了 contains
,那么实体将被创建为带有 contains
的搜索字段,并且对 icontains
的查询将不会找不到你要找的东西。如果您添加新实体,并且它们写入了正确的可索引数据,那么它们应该是可查询的,但旧实体不会在查询中返回。
您可以使用数据存储查看器查看与您的实体一起写入的 dbindexer。如果某些实体没有额外的 dbindexer 生成的属性,那么这些查询将不会返回。您可以通过读取和写入所有实体来解决此问题,以便 dbindexer 更新字段。
关于python - Django 查找类型 ("iexact"、 "icontains"、 "month"等)在 Django nonrel 中不起作用(使用 dbindexer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166284/
我有一个名字列表,例如: name_list = ['Alpha', 'bEtA', 'omegA'] 目前,我有以下查询集: MyModel.objects.filter(name__in=name
我有一个这样设置的用户模型。 class ExternalUserModel(models.Model): email = models.EmailField() # other fi
我正在尝试在我的 Django 应用程序中使用 iexact。 我的数据库中有项目,例如 test、TEST、tEsT 和 TesT。 我正在尝试找出是否有任何形式的 test 是我的数据库。似乎我需
我想在 Django 中做一个不区分大小写的 startswith 查询: books = Book.objects.filter(title__iexact__startswith=que
我想将 name__iexact 与 get_or_create 一起使用,以尽可能避免用户输入的字段重复。 我的 Provider 模型有一个我在 get_or_create 中使用的名称字段。 查
如何在 Django 中的同一查询中使用 contains 和 iexact 字段查找? 像这样.. casas = Casa.objects.filter(nome_fantasia__contai
调用 UserModel.objects.filter(email__iexact=email) 结果如下查询 SELECT * FROM "accounts_person" WHERE "accou
我有这样一个模型: class Article(models.Model): title = models.CharField(max_length=200) content = mo
使用 Django 1.3x。 我目前有一个非常非常大且非常非常活跃的 Postgres 数据集,其中有一个重要的列索引为 lower(column)。 我刚刚意识到一些常见的查询非常慢,因为 Dja
我使用“django nonrel”创建了一个应用程序,并使用“django dbindexer”来允许正常的 Django 查找。设置文件如下 我的项目/settings.py from djang
我是一名优秀的程序员,十分优秀!