wagtail - 在 WagTail 中,如何显示嵌入在富文本中的文档链接的完整文档 URL?
问题描述
我正在建立一个 wagtail 站点,该站点需要将所有链接显示为完整的 url,因为这些页面也将用作电子邮件模板。
鹡鸰版本 2.5.1
我的主要问题是嵌入在 RichTextFields 中的文档链接。当前的解决方法是在上传文档后将它们作为外部链接插入。
我查看了 features.register_link_handler 但不清楚如何处理文档链接。我假设它需要以某种方式在 wagtail_hooks.py register_rich_text_features 中。
解决方案
我最终在 wagtail_hooks.py 中为此创建了一个 register_rich_text_features 链接处理程序
类 DocumentFullLinkHandler(DocumentLinkHandler):
@classmethod
def expand_db_attributes(cls, attrs):
try:
document = cls.get_instance(attrs)
current_site = Site.objects.get_current()
document_url = (
document.url
if document.url.startswith(settings.PATH_PREFIX)
else f"{settings.PATH_PREFIX}{document.url}"
)
full_url = f"https://{current_site.domain}{document_url}"
return f'<a href="{escape(full_url)}">'
except (ObjectDoesNotExist, KeyError):
return "<a>"
推荐阅读
- wordpress - 带有 Recaptchav3 的 Contactform7 未显示徽章
- python - 如何在Python中导入库函数“import can”
- spring - Spring 更改 mongodb 的排序字段顺序
- ruby-on-rails - Factory-bot - 如何建立关联和嵌套属性
- angular - 使用 TypeScript 使用组件 Angular
- ionic-framework - 用户在 Ionic 中输入一些值后无法显示错误
- javascript - 如何使用 sequelize 和 mysql 创建一对一的关系?
- ruby-on-rails - 如何验证 has_one 关系?
- windows - Windows 10 升级后的 SCCM 客户端错误
- javascript - 将 jQuery“转换”为纯 JavaScript