微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在Django 1.10中使用Postgres搜索时出现NotImplementedError

我正在使用Django 1.10提供的Postgres的全文搜索并获得NotImplementedError.我正在使用的搜索查询是:

Application.objects.filter(applicant_data__search='test')

错误是:

NotImplementedError: Add 'django.contrib.postgres' to settings.INSTALLED_APPS to use the search operator.

我的INSTALLED_APPS设置包括django.contrib.postgres:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.postgres',
'main',
] 

我正在使用psycopg2作为我的数据库引擎:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'dbname',
    'USER': 'username',
    'PASSWORD': '',
    'HOST': 'localhost',
}
}

我的模型是:

class Application(models.Model):
    applicant_data = JSONField()

当我从django shell运行get_app_config时,postgres应用程序返回正确的值:

from django.apps import apps
apps.get_app_config('postgres').name
'django.contrib.postgres'

抛出NotImplementedError的函数是来自django.db.backends.postgres的fulltext_search_sql,所以我的猜测是django.contrib.postgres要么没有正确加载,要么被认的django postgres后端替换.

不知道从哪里开始,任何人都有类似的问题和/或见解?

解决方法:

找出此错误的原因 – 全文搜索运算符不适用于JSON字段.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐