如何扩展 PageLinkHandler 以接受页面上的锚点

问题描述 投票:0回答:1

我想扩展 Wagtail 的 PageLinkHandler 以将内部

PageChooser
链接与
AnchorLink
组合起来,因此模板输出为
<a href="/mypage#myanchor"

class AnchorPageLinkHandler(PageLinkHandler):
    identifier = 'page_anchor'

    @staticmethod
    def get_model():
        return Page

    @classmethod
    def get_instance(cls, attrs):
        return super().get_instance(attrs).specific

    @classmethod
    def expand_db_attributes(cls, attrs):
        try:
            page = cls.get_instance(attrs)
            hash_id = attrs["hash_id"]
            return '<a href="{}#{}">'.format(escape(
                page.localized.specific.url), hash_id)
        except Page.DoesNotExist:
            return "<a>"


@hooks.register('register_rich_text_features')
def register_link_handler(features):
    features.register_link_type(AnchorPageLinkHandler)

我已经做到了这一点,但有两个问题:i)

page_anchor
没有显示在链接编辑器小部件中,如何启用它? ii) 当我启用它时,如何将
hash_id
文本输入添加到小部件?

python django wagtail
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.