Wagtail CMS отправляет URL изображения поверх запроса API - PullRequest
0 голосов
/ 08 октября 2019

Я использую трясогузку без головы в качестве CMS для моего внешнего приложения. Пока все работает нормально, но я не могу получить свои изображения в своем приложении перед вызовом API.

Вот модель, с которой я сейчас работаю, я тоже использую streamfield:

from django.db import models

from wagtail.core.models import Page
from wagtail.core.fields import StreamField
from wagtail.core import blocks
from wagtail.admin.edit_handlers import FieldPanel, StreamFieldPanel
from wagtail.images.blocks import ImageChooserBlock as DefaultImageChooserBlock
from wagtail.api import APIField

class ImageChooserBlock(DefaultImageChooserBlock):
    def get_api_representation(self, value, context=None):
        if value:
            return {
                'id': value.id,
                'title': value.title,
                'large': value.get_rendition('width-1000').attrs_dict,
                'thumbnail': value.get_rendition('fill-120x120').attrs_dict,
            }

class HomePage(Page):
    body = StreamField([
        ('heading', blocks.CharBlock(classname="full title")),
        ('paragraph', blocks.RichTextBlock()),
        ('image', ImageChooserBlock()),
    ],)

    content_panels = Page.content_panels + [
        StreamFieldPanel('body'),
    ]

    api_fields = [
        APIField('body'),
    ]

Я получил код переопределения для ImageChooserBlock здесь: Wagtail, получающий / генерирующий URL-адреса изображений из JSON API или напрямую

Это больше не работает, яя все еще получаю ответ от API следующим образом:

"title": "now",
    "body": [
        {
            "type": "image",
            "value": 1,
            "id": "f5714257-bf5d-469b-9b4f-875212ec8d8d"
        }

Мне нужен URL, чтобы я мог отобразить их в своем приложении.

Есть еще идеи? Больше нигде не могу найти информацию об этом.

1 Ответ

0 голосов
/ 15 октября 2019

Я выкладываю решение подобной проблемы здесь.

Как получить URL-адрес изображения или загрузить URL-адрес изображений на страницах API, где изображение создается потоком?

Ваш общий подход выглядит правильно. Используете ли вы

/api/v2/pages/?type=home.HomePage&fields=body

Для вас вызов API?

...