Django Wagtail-在富文本编辑器中更改图像标记/格式
我使用的wagtail没有模板(我使用rest框架构建了一个API)。 我想在富文本编辑器中更改图像的格式 例如,这是我现在的RichText字段: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>"
<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获取图像对象,另一次获取图像格式副本。谢谢