我使用的是Django 1.7.1,我通过pip将Django-filter安装到我的虚拟环境/.virtualenvs/auction2/lib/python2.7/site-packages$

该公司表示,它已成功安装.

因此,我在已安装的应用程序中放置了django过滤器,如下所示:

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
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

看到它作为"Filters"进入,而不是文档所说的导入为(Django_Filters),我想我应该try 在Installed_apps中将其更改为"Filters".

我停止并启动了运行服务器,没有问题,所以我开始在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'})

我停止并启动runserver,没有问题.然后,我开始添加一个视图,并且只添加views.py中的import语句:

from donations.filters import DonorFilter

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

我try 在过滤器中更改导入.py是过滤器,而不是django_过滤器,错误没有改变.我把所有内容都改回了django_过滤器(在已安装的_应用程序和my filters.py中),正如文档所说的那样,添加视图时会出现错误global name 'DonorFilter' is not defined.这里是风景.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到我视野的顶端. 那么误差是'module' object has no attribute 'FilterSet'

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

我注意到在Django -过滤上有更多的开发,https://github.com/alex/django-filter页上升到0.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

阅读要求.txt显示我有

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

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

notice the s on the older version but not on the new one

非常基本的东西,但它真的绊倒了我.感谢所有花时间调查此事的人!

Django相关问答推荐

在Django管理中仅显示外键的特定值

我无法在Django模板中使用Get_Foo_Display

Django-admin 显示decorator 按多列排序

Django Form标签和action属性

如何将多个模型添加到单个列表视图?

使用 Pytest 在 Django 中编写测试用例时如何加载特定目录中的所有固定装置

有谁知道是否可以将您的 Django Heroku 应用程序放到 App Store/Google Play 上?

如何在 createsuperuser 中实例化表

Django 模型 Select - 只允许管理界面上的特定转换

Django:无法从另一个应用程序导入模型

如何从不是 django 元素文件夹的文件夹中运行 gunicorn

从python中的URL获取查询字符串的最佳方法?

django.request 记录器没有传播到根目录?

Django聚合:仅求和返回值?

如何按名称设置 django 模型字段?

__init__() 得到了一个意外的关键字参数user

Django 不调用模型清理方法

Django:如何编写查询以使用多列进行排序,通过模板显示

Django 覆盖模型 Clean() 与 Save()

Django中GROUP BY中注释的聚合