API Wagtail не раскрывает пользовательское поле
Я включаю wagtail api v2 в свой проект wagtail. После добавления api.v2 я получаю следующий json-ответ
{
"id": 32,
"meta": {
"type": "blog.AddStory",
"detail_url": "http://localhost/api/v2/pages/32/",
"html_url": "http://localhost/blog/1st-story/",
"slug": "1st-story",
"first_published_at": "2022-07-19T18:06:50.205210Z"
},
"title": "1st story"
}
Я хочу добавить мое поле content
после поля title
. Я добавил это в свой models.py
файл
from wagtail.api import APIField
from rest_framework import serializers
#Exposing Custom Page Fields/content
api_fileds = [
APIField('content'),
APIField('custom_title'),
APIField('blog_image'),
]
Вот мой api.py
файл
from wagtail.api.v2.views import PagesAPIViewSet
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.images.api.v2.views import ImagesAPIViewSet
from wagtail.documents.api.v2.views import DocumentsAPIViewSet
api_router = WagtailAPIRouter('wagtailapi')
api_router.register_endpoint('pages', PagesAPIViewSet)
api_router.register_endpoint('images', ImagesAPIViewSet)
api_router.register_endpoint('documents', DocumentsAPIViewSet)
Почему он не раскрывает пользовательские поля? Вот мой полный models.py
файл
Согласно документам:
По умолчанию, только подмножество доступных полей возвращается в ответ. Параметр ?fields может быть использован как для добавления дополнительных полей в ответ и удалить поля по умолчанию, которые, как вы знаете, вам не понадобятся. не понадобятся.
Попробуйте добавить ?fields=*
к url, который вы используете для получения данных страницы.
Я нашел ответ, эти пользовательские поля отображались на странице деталей. Чтобы получить все детали в одном URL, вы можете сделать следующее
http://127.0.0.1:8000/api/v2/pages/?type=blog.AddStory&fields=*
Это покажет все поля, но если вы хотите получить только содержимое & тегов, сделайте URL следующим образом
http://127.0.0.1:8000/api/v2/pages/?type=blog.AddStory&fields=content,tags