Как добавить функцию загрузки нескольких изображений в Wagtail?

Я в основном работаю с Django, Wagtail и сериализаторами API, не используя шаблоны непосредственно для HTML-рендеринга. Вместо HTML-шаблонов я использую API-функции Django и Wagtail для рендеринга контента.

В настоящее время я хочу добавить новую функцию: загрузку нескольких изображений на бэкэнд. Сейчас с помощью Wagtail я могу загружать только одно изображение за раз. Однако нам нужно изменить эту функцию таким образом, чтобы можно было загружать несколько изображений одновременно...

Позвольте мне прояснить ситуацию с загрузкой изображения. где в wagtail/images/muliple/add пользователь может добавить несколько изображений, но по умолчанию мы можем добавить только одно изображение за раз .Что мне нужно, так это возможность загрузки нескольких изображений, чтобы быть реализованным в структуре по умолчанию.

Структура моего кода выглядит следующим образом:

======================================

blocks.py:

from wagtail.images.blocks import ImageChooserBlock
from wagtail.models import Site, Page
from cms.core.models import get_rootless_url_path
import re
from wagtail.images.models import Image
from wagtail.templatetags.wagtailcore_tags import richtext


class ImageChooserRenditionsAPIBlock(ImageChooserBlock):
    def get_api_representation(self, value, context=None) -> dict:
        from .serializers import ImageSerializer

        return ImageSerializer(value).data


class GreeterBlock(StructBlock):
    label = TextBlock()
    # description = TextBlock()
    description =CustomRichTextBlock(features=['h1', 'h2', 'h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'image', 'code', 'blockquote'] )  
    image = ImageChooserRenditionsAPIBlock(required=False)
    video = CustomDocumentChooserBl`ock(required=False)
    cards = StreamBlock(
        local_blocks=(("cards", CardBlock()),),
        required=False,
    )


```
serializer.py:

class ImageSerializer(serializers.ModelSerializer):
    class Meta:
        model = get_image_model()
        # fields = ("id", "title", "width", "height", "renditions")
        fields = ("id", "title", "width", "height", "file")

```

urls.py:

from django.urls import path, include
from wagtail import urls as wagtail_urls
from wagtail.admin import urls as wagtailadmin_urls
from wagtail.documents import urls as wagtaildocs_urls
from wagtail.api.v2.router import WagtailAPIRouter
from wagtail.documents.api.v2.views import DocumentsAPIViewSet
from wagtail.images.api.v2.views import ImagesAPIViewSet
from cms.meta import urls as meta_urls
from .views import CustomPagesAPIViewSet

api_router = WagtailAPIRouter("wagtailapi")
api_router.register_endpoint("pages", CustomPagesAPIViewSet)
api_router.register_endpoint("images", ImagesAPIViewSet)
api_router.register_endpoint("documents", DocumentsAPIViewSet)


urlpatterns = [
    path("", include(wagtailadmin_urls)),
    path("content/documents/", include(wagtaildocs_urls)),
    
]

api_urlpatterns = [
    path("", api_router.urls),
    path("meta/", include(meta_urls.urlpatterns)),
]

```

I am not that familiar with Wagtail. Could anyone please help me`your text`

I need an answer that can help me solve the issue of multiple image uploads using the default Wagtail image field.

Прошу прощения, но в Wagtail CMS уже есть функция загрузки нескольких изображений одновременно. Просто воспользуйтесь интерфейсом изображений. Нажмите «Добавить изображение», а затем вы можете использовать либо кнопку для выбора нескольких изображений (удерживайте клавишу [Shift] или [Ctrl] для выбора нескольких файлов в виджете) либо просто перетащите ваши файлы на отмеченную область. Смотрите приложенный скриншот. Полагаю, что в вашей пользовательской функции загрузки нет необходимости.

enter image description here

Вернуться на верх