Я использую трясогузку без головы в качестве 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, чтобы я мог отобразить их в своем приложении.
Есть еще идеи? Больше нигде не могу найти информацию об этом.