gpt4 book ai didi

django - 导入错误 : No module named django_filters

转载 作者:行者123 更新时间:2023-11-28 19:37:30 28 4
gpt4 key购买 nike

我正在使用 Django 1.7.1,我将已安装的 django-filters pip 到我的虚拟环境 /.virtualenvs/auction2/lib/python2.7/site-packages$

安装成功。

所以我将 django-filters 放在已安装的应用程序中,如下所示:

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
'django_filters',
'donations',
)

我运行了 python manage.py runserver 并得到了这个错误:

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Users/Dani/.virtualenvs/auction2/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/Users/Dani/.virtualenvs/auction2/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute
django.setup()
File "/Users/Dani/.virtualenvs/auction2/lib/python2.7/site-packages/django/__init__.py", line 21, in setup
apps.populate(settings.INSTALLED_APPS)
File "/Users/Dani/.virtualenvs/auction2/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
app_config = AppConfig.create(entry)
File "/Users/Dani/.virtualenvs/auction2/lib/python2.7/site-packages/django/apps/config.py", line 87, in create
module = import_module(entry)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named django_filters

说是安装了,为什么不能导入呢?我有另一个包,crispy-forms,已安装并可以使用。我在虚拟环境中查看了我的网站包,我看到了:

crispy_forms
django
django_braces-1.4.0.dist-info
django_crispy_forms-1.4.0-py2.7.egg-info
django_filters-0.1.0-py2.7.egg-info
easy_install.py
easy_install.pyc
filters
pip

看到它作为“过滤器”而不是文档所说的将其导入为 (django_filters),我想我会尝试将它更改为 installed_apps 中的“过滤器”。

我停止并启动了 runserver,没问题,所以我开始在 filter.py 中构建我的过滤器:

import django_filters
from donations.models import Donor, Item, Issue

class DonorFilter(django_filters.FilterSet):
class Meta:
model = Donor
fields = {'type':['exact'],'donor':['icontains'],}

def __init__(self, *args, **kwargs):
super(DonorFilter, self).__init__(*args, **kwargs)
self.filters['type'].extra.update(
{'empty_label': 'All Types'})

我停止并启动运行服务器,没问题。然后我开始在 views.py 中添加一个 View 和导入语句:

from donations.filters import DonorFilter

给我同样的 ImportError: No module named django_filters. 错误。

我尝试将 filters.py 中的导入更改为过滤器而不是 django_filters,但错误没有改变。我按照文档所述将所有内容改回 django_filters(在 installed_apps 和我的 filters.py 中),添加 View 时出现错误 global name 'DonorFilter' is not defined。这是 view.py:

def donor_list(request):
f = DonorFilter(request.GET, queryset=Donor.objects.all())
return render_to_response('donations/donor_list', {'filter': f})

这意味着我需要导入我在 filters.py 中创建的函数?所以我添加from donations.filters import DonorFilter 到我 View 的顶部。然后错误是 'module' object has no attribute 'FilterSet'

我可以在我的 virtualenv 中安装的 filters.py 文件中看到 FilterSet 类

我注意到 django-filter 有更多的发展,https://github.com/alex/django-filter页面上升到 v0.9.2,但 pip 安装 0.1.0。我应该以其他方式安装它吗(除了 pip)?

我对此很陌生,感谢任何帮助!

最佳答案

我的 pip 版本很旧,真的很旧。 1.5.6 当我安装我的虚拟环境时它就可以运行,所以我没有质疑。学过的知识!这是我所做的,以防它帮助别人......

在虚拟环境中,我按照文档中的描述安装了 pip: https://pip.pypa.io/en/stable/installing.htmlpython get-pip.py 这将我升级到 pip 6.1.1

pip install django-filter
pip freeze > requirements.txt

阅读requirements.txt表明我有

django-filter==0.9.2
django-filters==0.1.0

所以我用pip uninstall django-filters卸载了旧版本

注意旧版本上的 s 但新版本上没有

非常基本的东西,但它真的把我绊倒了。感谢所有花时间研究此事的人!

关于django - 导入错误 : No module named django_filters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929178/

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