我确定答案就在那里,而我却没有看到。如何呈现RichTextBlock
以移除包裹<div class="rich-text">
?
{% include_block block %}
和{{ block.value }}
都提供了包裹div
。
答案 0 :(得分:3)
不幸的是,这是硬编码的,目前无法覆盖 - 请参阅https://github.com/wagtail/wagtail/issues/1214。
答案 1 :(得分:0)
我通过创建自定义模板标签解决了此问题
在您的项目中,请在templatetags目录中创建一个文件(例如templatetags / wagtailcustom_tags.py),内容如下。
from django import template
from django.utils.safestring import mark_safe
from wagtail.core.rich_text import RichText, expand_db_html
register = template.Library()
@register.filter
def richtext_withclasses(value, classes):
if isinstance(value, RichText):
html = expand_db_html(value.source)
elif isinstance(value, str):
html = expand_db_html(value)
elif value is None:
html = ""
else:
raise TypeError(
"'richtext_withclasses' template filter received an invalid value; expected string, got {}.".format(
type(value)
)
)
return mark_safe('<div class="' + classes + '">' + html + "</div>")
然后在模板中加载模板标记
{% load wagtailcustom_tags %}
并使用自定义类(或根本没有任何类)呈现RTF文本字段
{{ myfield | richtext_withclasses:"my custom class" }}