Reputation: 88629
After upgrading to Django REST framework 3.7
I got following error
File "/home/jpg/Projects/django2x/sample/views.py", line 24, in <module>
from rest_framework.filters import DjangoFilterBackend
ImportError: cannot import name 'DjangoFilterBackend'
and here is my view
from rest_framework.filters import DjangoFilterBackend
from rest_framework import viewsets
class FooViewSet(viewsets.ModelViewSet):
queryset = Foo.objects.all()
serializer_class = Foo_Serializer
filter_backends = (DjangoFilterBackend,)
filter_fields = ('foo_bar', 'bar_foo')
Upvotes: 5
Views: 7612
Reputation: 88629
rest_framework.filters.DjangoFilterBackend
was depricated in DRF : 3.7.
So from DRF 3.7
onwards you should install django-filter package to use the DjangoFilterBackend
in the views.
You can update the < DRF 3.6
style filters as,
from rest_framework import viewsets
from django_filters import rest_framework as filters
class FooViewSet(viewsets.ModelViewSet):
queryset = Foo.objects.all()
serializer_class = Foo_Serializer
filter_backends = (filters.DjangoFilterBackend,)
filterset_fields = ('foo_bar', 'bar_foo')
Note: the filter_fields
attribute is chnaged to filterset_fields
in newer versions of django-filter
Upvotes: 11