将django配置为使用过滤后端后,我无法获得可浏览的API来显示“过滤器”按钮。
根据文档,我所需要做的就是将以下几行代码添加到站点的settings.py
文件中,并且过滤器应自动位于可浏览API的Web界面中,但我在那儿看不到它。我尝试重新启动Web服务器(正在使用./manage runserver
),但没有帮助。
编辑:
我知道还有另一种选择可以基于视图打开过滤器,但是我想为所有视图打开过滤器。
根据文档,仅执行以下一项操作就足够了:
可以使用该
DEFAULT_FILTER_BACKENDS
设置在全局范围内设置默认过滤器后端。
或以下:
您还可以基于每个视图或每个视图集设置过滤器后端
从settings.py:
REST_FRAMEWORK = {
<snip>
'DEFAULT_FILTER_BACKENDS': (
'django_filters.rest_framework.DjangoFilterBackend',
),
以下内容pip freeze
:
(venv) mba15:server nir$ pip freeze | grep django
django-allauth==0.28.0
django-celery==3.1.17
django-filter==0.15.3
django-registration-redux==1.4
django-rest-auth==0.8.2
djangorestframework==3.5.3
你们是否已指定filter_fields
您ViewSet
或设置filter_class
?
class ArticleViewSet(ModelViewSet):
serializer_class = ArticleSerializer
queryset = Article.objects.all()
filter_fields = ('category', )
或者
class ArticleFilterSet(FilterSet):
class Meta:
model = Article
fields = ('category', )
class ArticleViewSet(ModelViewSet):
serializer_class = ArticleSerializer
queryset = Article.objects.all()
filter_class = ArticleFilterSet
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句