Tôi đang sử dụng Django 1.7.1 và tôi pip cài đặt django-bộ lọc để env ảo của tôi tại /.virtualenvs/auction2/lib/python2.7/site-packages$
ImportError: Không có mô-đun tên django_filters
Nó nói nó đã được cài đặt thành công.
Vì vậy, tôi đặt django-bộ lọc trong các ứng dụng được cài đặt như sau:
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',
)
Tôi chạy python manage.py runserver
và đã nhận lỗi này:
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
Nó nói nó được cài đặt, nhưng tại sao không thể nó nhập khẩu nó? Tôi có một gói khác, dạng giòn, được cài đặt và hoạt động. Tôi nhìn gói trang web của tôi trên môi trường ảo và tôi thấy:
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
Thấy nó đi trong khi 'lọc' thay vì những gì các tài liệu nói để nhập nó như (django_filters), tôi nghĩ rằng tôi muốn thử thay đổi nó thành 'bộ lọc' trong tệp installed_apps.
tôi ngừng và bắt đầu runserver, không có vấn đề, vì vậy tôi bắt đầu xây dựng bộ lọc của tôi trong 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'})
Tôi dừng lại và bắt đầu runserver, không có vấn đề. Sau đó, tôi bắt đầu thêm một cái nhìn và chỉ báo cáo kết quả nhập khẩu tại views.py:
from donations.filters import DonorFilter
mang lại cho tôi cùng một lỗi ImportError: No module named django_filters.
.
Tôi đã thử thay đổi quá trình nhập trong filter.py thành bộ lọc thay vì django_filters và các lỗi không thay đổi. Tôi đã thay đổi tất cả mọi thứ trở lại django_filters (trong installed_apps và filters.py của tôi) như tài liệu nói để làm, tôi nhận được lỗi global name 'DonorFilter' is not defined
khi tôi thêm chế độ xem. Đây là view.py:
def donor_list(request):
f = DonorFilter(request.GET, queryset=Donor.objects.all())
return render_to_response('donations/donor_list', {'filter': f})
Điều đó có nghĩa là tôi cần nhập hàm tôi đã tạo trong filters.py? Vì vậy, tôi thêm from donations.filters import DonorFilter
vào đầu chế độ xem của tôi. Sau đó, lỗi là 'module' object has no attribute 'FilterSet'
tôi có thể thấy lớp FilterSet trong file filters.py cài đặt trong virtualenv tôi
tôi nhận thấy có sự phát triển thêm về django-lọc, trang https://github.com/alex/django-filter đi lên v0.9.2 , nhưng pip cài đặt 0.1.0. Tôi có nên cài đặt nó theo cách khác (ngoài pip) không?
Tôi rất mới ở đây và đánh giá cao bất kỳ trợ giúp nào!
Ok, mỗi lần một bước. Có rất nhiều lỗi rất khó để trả lời chỉ một. Trước hết, nếu bạn đặt trong settings.py của bạn trong 'INSTALLED_APPS' ứng dụng 'bộ lọc' và trong của bạn .py bạn nhập' bộ lọc' thay vì django_filter, những gì sẽ xảy ra? – RafaelC
Cảm ơn bạn, tôi biết tôi có một mớ hỗn độn lớn! Nếu tôi đặt 'các bộ lọc' trong 'INSTALLED_APPS' trong settings.py và' các bộ lọc nhập 'trong bộ lọc của tôi thì các lỗi đã biến mất. Tôi có thể truy cập ứng dụng của mình nhưng không có bộ lọc nào trên trang. Nút gửi cho bộ lọc là có, nhưng không có gì khác. –
Để bất cứ ai khác bị mắc kẹt trên này: hãy chắc chắn rằng bạn không cố gắng để nhập khẩu 'django-filter' (thông báo dấu gạch ngang chứ không phải là gạch dưới). –