我正在通过Python和Django运行一个网站。
Django-filters=2.1 installed
Django=2.1 installed当我运行时,我得到下面的错误。
importError: Could not import 'django_filters.rest_framework.DjangoFilterBackend' for API setting 'DEFAULT_FILTER_BACKENDS'.
ImportError: cannot import name 'QUERY_TERMS' from
'django.db.models.sql.constants' (C:\Users\Android V\AppData\Loc
al\Programs\Python\Python37-32\lib\site-packages\django\db\models\sql\constants.
py).发布于 2019-12-03 21:46:07
Short answer:将您的django-filter包(不要与django包混淆)升级到最新版本。
失败的原因是因为在Django中有一个changeset [GitHub]确实从django.db.models.sql.constants中删除了QUERY_TERMS常量,以允许ModelAdmin使用任何查找。此更改已部署在django-2.1中(因此在django-2.0中,仍有一个QUERY_TERMS常量)。
django-filter-1.1.0包仍然使用该常量。这是在changeset [GitHub]中修复的,从django-filter-2.0.0开始,不再使用它。
发布于 2022-01-16 09:21:52
我在centos7中的用例显示了错误:
文件"/root/wangxq/python/vidly/api/models.py",第2行,来自tastypie.resources导入ModelResource文件资源包/tastypie/resources.py“,第32行,在from django.db.models.sql.constants import QUERY_TERMS ImportError中:无法从'django.db.models.sql.constants‘ImportError导入名称'QUERY_TERMS’

要解算,请执行以下操作:
编辑文件"/root/.local/share/virtualenvs/vidly-j9gvS3wP/lib/python3.9/site-packages/tastypie/resources.py",并将try块添加到"from django.db.models.sql.constants import QUERY_TERMS“行,如下所示:
try:
from django.db.models.sql.constants import QUERY_TERMS
except ImportError:
QUERY_TERMS = {
'exact', 'iexact', 'contains', 'icontains', 'gt', 'gte', 'lt', 'lte', 'in', 'startswith', 'istartswith', 'endswith', 'iendswith', 'range', 'year','month', 'day', 'week_day', 'hour', 'minute', 'second', 'isnull', 'search','regex', 'iregex',
}https://stackoverflow.com/questions/59158204
复制相似问题