Wagtail: How to override default ImageEmbedHandler?

ifiore

I've been having some trouble implementing Wagtail CMS on my own Django backend. I'm attempting to use the 'headless' version and render content on my own SPA. As a result, I need to create my own EmbedHandlers so that I can generate URL's to documents and images to a private S3 bucket. Unfortunately, though I've registered my own PrivateS3ImageEmbedHandler, Wagtail is still using the default ImageEmbedHandler to convert the html-like bodies to html. Is there a way for me to set it so that Wagtail uses my custom EmbedHandler over the built in default?

Here's my code:

from wagtail.core import blocks, hooks
from messaging.utils import create_presigned_url


class PrivateS3ImageEmbedHandler(EmbedHandler):

    identifier = "image"

    @staticmethod
    def get_model():
        return get_user_model()

    @classmethod
    def get_instance(cls, attrs):
        model = cls.get_instance(attrs)
        print(model)
        return model.objects.get(id=attrs['id'])

    @classmethod
    def expand_db_attributes(cls, attrs):
        image = cls.get_instance(attrs)
        print(image)
        presigned_url = create_presigned_url('empirehealth-mso', image.file)
        print(presigned_url)
        return f'<img src="{presigned_url}" alt="it works!"/>'

@hooks.register('register_rich_text_features')
def register_private_images(features):
    features.register_embed_type(PrivateS3ImageEmbedHandler)
gasman

You need to ensure that your @hooks.register('register_rich_text_features') call happens after the one in the wagtail.images app; this can be done by either putting your app after wagtail.images in INSTALLED_APPS, or by passing an order argument greater than 0:

@hooks.register('register_rich_text_features', order=10)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Wagtail:デフォルトのImageEmbedHandlerをオーバーライドする方法は?

分類Dev

How to override default unhandled exception output in Owin?

分類Dev

How to Override a Default JsonConverter (specified in an attribute)

分類Dev

How do I override laravel resource route default method?

分類Dev

How to override MassTransit default exchange and queue topology convention?

分類Dev

How to override the html default "Please fill out this field" when validation fails in Flask?

分類Dev

How do I override the default way Wordpress' determines the .current-menu-item class?

分類Dev

Devise/OmniAuth Override default callback url

分類Dev

How to override a function in a package?

分類Dev

How to retrieve a cookie in Django/Wagtail to set Python variable

分類Dev

In Wagtail, how to list Pages which are Live and have no privacy setting?

分類Dev

ReactRouter v4 Prompt - override default alert

分類Dev

Is it possible to override material-ui components default props?

分類Dev

Make overflow¹, or “How to override a target?”

分類Dev

How to override route in a plugin nopcommerce

分類Dev

how to mock a class and override a method

分類Dev

Dart: how to override a generic method?

分類Dev

Wagtailブログの例では、属性 '_default_manager'がありません

分類Dev

How to override systemd unit file settings?

分類Dev

How to override one method from Rails Framework?

分類Dev

How to override base classes\structs such as int, string?

分類Dev

How do I override a template on readthedocs?

分類Dev

How to override bundled Doctrine repository in Symfony

分類Dev

How can I override another .bbappend

分類Dev

How to properly override getters and setters in Haxe

分類Dev

How can I override Array Constructor in Ruby?

分類Dev

How do I properly override a constrained method

分類Dev

How to override a control method that created by scene builder

分類Dev

How to override/ modify a value or method from the sdk?

Related 関連記事

  1. 1

    Wagtail:デフォルトのImageEmbedHandlerをオーバーライドする方法は?

  2. 2

    How to override default unhandled exception output in Owin?

  3. 3

    How to Override a Default JsonConverter (specified in an attribute)

  4. 4

    How do I override laravel resource route default method?

  5. 5

    How to override MassTransit default exchange and queue topology convention?

  6. 6

    How to override the html default "Please fill out this field" when validation fails in Flask?

  7. 7

    How do I override the default way Wordpress' determines the .current-menu-item class?

  8. 8

    Devise/OmniAuth Override default callback url

  9. 9

    How to override a function in a package?

  10. 10

    How to retrieve a cookie in Django/Wagtail to set Python variable

  11. 11

    In Wagtail, how to list Pages which are Live and have no privacy setting?

  12. 12

    ReactRouter v4 Prompt - override default alert

  13. 13

    Is it possible to override material-ui components default props?

  14. 14

    Make overflow¹, or “How to override a target?”

  15. 15

    How to override route in a plugin nopcommerce

  16. 16

    how to mock a class and override a method

  17. 17

    Dart: how to override a generic method?

  18. 18

    Wagtailブログの例では、属性 '_default_manager'がありません

  19. 19

    How to override systemd unit file settings?

  20. 20

    How to override one method from Rails Framework?

  21. 21

    How to override base classes\structs such as int, string?

  22. 22

    How do I override a template on readthedocs?

  23. 23

    How to override bundled Doctrine repository in Symfony

  24. 24

    How can I override another .bbappend

  25. 25

    How to properly override getters and setters in Haxe

  26. 26

    How can I override Array Constructor in Ruby?

  27. 27

    How do I properly override a constrained method

  28. 28

    How to override a control method that created by scene builder

  29. 29

    How to override/ modify a value or method from the sdk?

ホットタグ

アーカイブ