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