Wagtail API-如何排除字段?

时间:2018-08-22 07:18:58

标签: python api django-rest-framework wagtail

在Wagtail文档中,有一节介绍如何使用URL查询部分?fields=_,title从API(http://docs.wagtail.io/en/v2.2.1/advanced_topics/api/v2/usage.html#removing-all-default-fields)中删除某些字段。但这是从API使用者角度完成的。我该怎么做才能排除服务器端的某些字段,所以无论用户在URL查询部分键入什么内容,他都将无法获得某些字段。我知道如何排除我添加的字段,只需删除它们的api_fields列表即可完成。但是有一些“核心”字段,例如metaid。如何排除那些?

1 个答案:

答案 0 :(得分:0)

您可以使用自定义视图集注册页面的api端点,而不必使用默认的PageAPIViewSet。

例如,如果您只想返回页面的title字段:

from wagtail.api.v2.views import PagesAPIViewSet, PageSerializer


class MyCustomPagesAPIViewSet(PagesAPIViewSet):
    base_serializer_class = PageSerializer

    body_fields = [
        'title',
    ]

    meta_fields = [
        'parent',
    ]


api_router.register_endpoint('pages', MyCustomPagesAPIViewSet)