Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Wagtail-在富文本编辑器中更改图像标记/格式_Django_Wagtail_Hallo Js - Fatal编程技术网

Django Wagtail-在富文本编辑器中更改图像标记/格式

Django Wagtail-在富文本编辑器中更改图像标记/格式,django,wagtail,hallo-js,Django,Wagtail,Hallo Js,我使用的wagtail没有模板(我使用rest框架构建了一个API)。 我想在富文本编辑器中更改图像的格式 例如,这是我现在的RichText字段: <p>test test test</p> <p><br/></p><p><embed alt=\"IMG_1232.jpg\" embedtype=\"image\" format=\"test\" id=\"4\"/><br/></p>"

我使用的wagtail没有模板(我使用rest框架构建了一个API)。 我想在富文本编辑器中更改图像的格式

例如,这是我现在的RichText字段:

<p>test test test</p>
<p><br/></p><p><embed alt=\"IMG_1232.jpg\" embedtype=\"image\" format=\"test\" id=\"4\"/><br/></p>"
测试



相反,我希望它只包含到图像的直接链接,甚至更好地包含到我定义的过滤器(使用register\u image\u格式)的图像。 e、 g:

测试



可能吗? 我查看了hallo.js,但不确定该如何处理它


感谢

要获得图像、嵌入和文档的完整URL,您必须通过richtext
过滤器
模板标记运行richtext块的内容

from wagtail.wagtailcore.templatetags import wagtailcore_tags

rich_text = wagtailcore_tags.richtext(rich_text_source)
rich_text
应具有嵌入和带有完整URL的图像

与DRF一起使用时,如果您在序列化程序中执行此操作,则看起来像这样

from django.contrib.auth.models import User
from django.utils.timezone import now
from rest_framework import serializers
from wagtail.wagtailcore.templatetags import wagtailcore_tags

class SomeSerializer(serializers.Serializer):
    rich_text = serializers.SerializerMethodField()

    def get_rich_text(self, obj):
        return wagtailcore_tags.richtext(obj.rich_text.source)

要获取图像、嵌入和文档的完整URL,必须通过richtext
filter
template标记运行richtext块的内容

from wagtail.wagtailcore.templatetags import wagtailcore_tags

rich_text = wagtailcore_tags.richtext(rich_text_source)
rich_text
应具有嵌入和带有完整URL的图像

与DRF一起使用时,如果您在序列化程序中执行此操作,则看起来像这样

from django.contrib.auth.models import User
from django.utils.timezone import now
from rest_framework import serializers
from wagtail.wagtailcore.templatetags import wagtailcore_tags

class SomeSerializer(serializers.Serializer):
    rich_text = serializers.SerializerMethodField()

    def get_rich_text(self, obj):
        return wagtailcore_tags.richtext(obj.rich_text.source)

向模型中添加一个方法,该方法返回调用富文本字段上的
richtext
过滤器的结果。然后,您可以使用此方法代替
api\u字段定义中的字段本身:

from wagtail.core.templatetags import wagtailcore_tags

def MyPage(Page):
    body = RichTextField()

    def rendered_body(self):
        return wagtailcore_tags.richtext(self.body)

    api_fields = [
        APIField('rendered_body'),
    ]

向模型中添加一个方法,该方法返回调用富文本字段上的
richtext
过滤器的结果。然后,您可以使用此方法代替
api\u字段定义中的字段本身:

from wagtail.core.templatetags import wagtailcore_tags

def MyPage(Page):
    body = RichTextField()

    def rendered_body(self):
        return wagtailcore_tags.richtext(self.body)

    api_fields = [
        APIField('rendered_body'),
    ]

我没有使用模板(我正在使用DRF)。我现在正在使用流字段。你知道这是否可能吗?谢谢这就是我上面提到的方法,只需将html源代码传递给
wagtailcore\u tags.richtext
函数即可。它将为您扩展URL。图像不是在RichText中,而是在ImageChooserBlock中。我不确定这是否可能,我必须为每个图像点击DB两次-一次从其ID获取图像对象,另一次获取图像格式副本。谢谢,我没有使用模板(我正在使用DRF)。我现在正在使用流字段。你知道这是否可能吗?谢谢这就是我上面提到的方法,只需将html源代码传递给
wagtailcore\u tags.richtext
函数即可。它将为您扩展URL。图像不是在RichText中,而是在ImageChooserBlock中。我不确定这是否可能,我必须为每个图像点击DB两次-一次从其ID获取图像对象,另一次获取图像格式副本。谢谢