JPG*_*JPG 3 django django-filter django-rest-framework
升级到Django REST framework 3.7我后出现以下错误
File "/home/jpg/Projects/django2x/sample/views.py", line 24, in <module>
from rest_framework.filters import DjangoFilterBackend
ImportError: cannot import name 'DjangoFilterBackend'
Run Code Online (Sandbox Code Playgroud)
这是我的观点
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')
Run Code Online (Sandbox Code Playgroud)
rest_framework.filters.DjangoFilterBackend在DRF 中被弃用:3.7。
所以从DRF 3.7以后你应该安装django-filter包来DjangoFilterBackend在视图中使用。
您可以将< DRF 3.6样式过滤器更新为,
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')Run Code Online (Sandbox Code Playgroud)
注意:该filter_fields属性filterset_fields在较新版本的 django-filter 中更改为
| 归档时间: |
|
| 查看次数: |
3737 次 |
| 最近记录: |