Ich verwende Django 1.7.1 und ich pip installiert django-Filter in meiner virtuellen env bei /.virtualenvs/auction2/lib/python2.7/site-packages$
Import: Keine Modul namens django_filters
Er sagte, es erfolgreich installiert wurde. So
Ich legte django-Filter in installierten Anwendungen wie so:
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',
)
Ich lief python manage.py runserver
und habe diesen Fehler:
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
Er sagte, es installiert, aber warum kann es nicht importieren es? Ich habe ein anderes Paket, knusprige Formulare, installiert und funktioniert. Ich schaute auf meine Website-Pakete auf der virtuellen Umgebung und ich sah:
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
Sehen, dass es in als ‚Filter‘ geht statt dessen, was die Dokumentation sagt, es als (django_filters) zu importieren, ich dachte, ich würde versuchen, es in 'installed_apps' zu 'filters' ändern.
I stoped und begann die runserver, kein Problem, und so begann ich meine Filter in filter.py
Gebäude:
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'})
ich die runserver stoppen und starten, kein Problem. Dann beginnen Hinzufügen ich einen Blick und nur die Import-Anweisung bei views.py:
from donations.filters import DonorFilter
gibt mir die gleiche ImportError: No module named django_filters.
Fehler.
Ich habe versucht, den Import in meinem filters.py zu Filtern anstelle von django_filters zu ändern, und die Fehler haben sich nicht geändert. Ich habe alles zurück in django_filters (in installed_apps und meine filters.py) geändert, wie die Dokumentation sagt, ich bekomme den Fehler global name 'DonorFilter' is not defined
, wenn ich die Ansicht hinzufügen. Hier ist der view.py:
def donor_list(request):
f = DonorFilter(request.GET, queryset=Donor.objects.all())
return render_to_response('donations/donor_list', {'filter': f})
Das bedeutet, ich muss die Funktion importieren, die ich in filters.py erstellt habe? Also füge ich from donations.filters import DonorFilter
an die Spitze meiner Ansicht hinzu. Dann ist der Fehler 'module' object has no attribute 'FilterSet'
ich die FILTERSET Klasse in der filters.py Datei in meinem virtualenv installiert sehen
ich bemerkte, dass es mehr Entwicklung auf django-Filter ist, die https://github.com/alex/django-filter Seite geht bis zu v0.9.2 , aber pip installiert 0.1.0. Sollte ich es anders installieren (außer Pip)?
Ich bin sehr neu und schätze jede Hilfe!
Ok, ein Schritt nach dem anderen. Es gibt so viele Fehler, dass es schwierig ist, nur Eins zu beantworten. Wenn du deine settings.py in 'INSTALLED_APPS' steckst, filtert die App und in deiner .py importierst du' filters' anstelle von django_filter, was passiert dann? – RafaelC
Danke, ich weiß, ich habe eine große Sauerei! Wenn ich "filters" in "INSTALLED_APPS" in settings.py und "filters.py" in meine filters.py einfüge, sind die Fehler verschwunden. Ich kann auf meine App zugreifen, aber auf der Seite ist kein Filter vorhanden. Der Submit-Button für den Filter ist da, aber sonst nichts. –
Für alle anderen, die daran festhalten: stellen Sie sicher, dass Sie nicht versuchen, den 'Django-Filter' zu importieren (beachten Sie den Bindestrich und nicht den Unterstrich). –