Как отредактировать правило конвертера формата внешних ссылок в редакторе draftail cms wagtail

Когда кто-то добавляет внешнюю ссылку в Wagtail CMS, у него должна быть возможность выбрать, сделать ли ссылку 'nofollow' или 'noreferrer'. Чтобы добиться этого, я унаследовал существующую форму ссылок, и код представлен здесь

class CustomExternalLinkChooserForm(ExternalLinkChooserForm):

rel = forms.ChoiceField(
    choices=[
        ("noreferrer", "Noreferrer"),
        ("nofollow", "Nofollow"),
    ],
    required=False,
    label=_("Rel Attribute"),
)

я также унаследовал вид

class CustomExternalLinkView(ExternalLinkView):

form_class = CustomExternalLinkChooserForm

я зарегистрировал это в wagtail hooks, поэтому администратор принимает это за переопределение основного вида

@hooks.register("register_admin_urls")
def register_custom_external_link_view():

return [
    path(
        "admin/choose-external-link/",
        CustomExternalLinkView.as_view(),
        name="wagtailadmin_choose_page_external_link",
    )
]

При использовании вышеуказанного, он дает мне такой вывод, но основная проблема заключается в том, что когда редактор Draftail rich text сохраняет ссылку в базе данных, он не добавляет атрибут rel в href url. Как я могу решить эту проблему? enter image description here

Вам также потребуется настроить обработчики ссылок. В документации есть пример того, как добавить nofollow ко всем ссылкам. Вам нужно будет изменить его, чтобы он принимал ваш динамический атрибут. https://docs.wagtail.org/en/stable/extending/rich_text_internals.html#registering-rewrite-handlers

Вернуться на верх