query_terms name django_filters cannot django django-filter

name - django_filters install



ImportError: Ningún módulo llamado django_filters (3)

Estoy usando Django 1.7.1 e instalo los filtros django instalados en mi env virtual en /.virtualenvs/auction2/lib/python2.7/site-packages$

Dijo que se instaló con éxito.

Así que coloqué filtros django en aplicaciones instaladas como:

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'', )

Corrí python manage.py runserver y obtuve este error:

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

Dijo que estaba instalado, pero ¿por qué no puede importarlo? Tengo otro paquete, formas crujientes, instalado y funcionando. Miré los paquetes de mi sitio en el entorno virtual y vi:

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

Al ver que entra como ''filtros'' en lugar de lo que dice la documentación para importarlo como (django_filters), pensé que intentaría cambiarlo a solo ''filtros'' en install_apps.

Detuve e inicié el servidor de ejecución, no hay problema, así que comencé a construir mi filtro en 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''})

Paro y arranco el servidor de ejecución, no hay problema. Luego comienzo a agregar una vista y solo la declaración de importación en views.py:

from donations.filters import DonorFilter

me da el mismo ImportError: No module named django_filters. error.

Intenté cambiar la importación en mi filters.py a filtros en lugar de django_filters y los errores no cambiaron. Cambié todo de nuevo a django_filters (en Install_apps y mi filters.py), como dice la documentación, global name ''DonorFilter'' is not defined el error El global name ''DonorFilter'' is not defined cuando agrego la vista. Aquí está el view.py:

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

Eso significa que necesito importar la función que creé en filters.py? Así que agrego from donations.filters import DonorFilter a la parte superior de mi vista. Entonces el error es ''module'' object has no attribute ''FilterSet''

Puedo ver la clase FilterSet en el archivo filters.py instalado en mi virtualenv

Noté que hay más desarrollo en django-filter, la página https://github.com/alex/django-filter sube a v0.9.2, pero pip instala 0.1.0. ¿Debo instalarlo de otra manera (que no sea pip)?

Soy muy nuevo en esto y aprecio cualquier ayuda!


Mi versión pip era vieja, muy vieja. 1.5.6 Cuando instalé mi entorno virtual, simplemente funcionó, así que no cuestioné. ¡Lección aprendida! Esto es lo que hice en caso de que ayude a alguien más ...

En el entorno virtual, instalé pip como se describe en los documentos: https://pip.pypa.io/en/stable/installing.html python get-pip.py Esto me actualizó a pip 6.1.1

pip install django-filter pip freeze > requirements.txt

Requisitos de lectura.txt mostró que tenía

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

Así que desinstalé la versión anterior con pip uninstall django-filters

Observe la s en la versión anterior pero no en la nueva.

Cosas realmente básicas pero realmente me tropezaron. Gracias a todos los que se tomaron el tiempo para investigar esto!


También tuve el mismo problema. Incluso después de instalar django-filters no pude importarlo

ImportError: Ningún módulo llamado django_filters

La versión de Django que estoy usando es 1.8 y la versión de python es 2.7.x

La solución es instalar djangorestframework-filters

pip install djangorestframework-filters

Los nombres son muy confusos.

Sin embargo, django-rest-framework-filters es una extensión de Django REST framework y Django filter que facilita el filtrado entre las relaciones, mientras que Django-filter es una aplicación Django reutilizable que permite a los usuarios agregar de forma declarativa el filtrado dinámico de QuerySet desde los parámetros de URL.


Tuve un problema similar al usar django 1.7, djangorestframework == 3.2.0 y el último django-filter == 0.13.0:

Using DjangoFilterBackend, but django-filter is not installed cannot import name Expression

Finalmente lo arreglé bajando el django-filter a 0.11.

Ahora pip freeze se ve así y está funcionando:

Django==1.7 django-filter==0.11.0 djangorestframework==3.2.0