Django Как сделать внутреннюю ссылку на пользовательский компонент кнопки
Я работаю на DjangoCMS 3.11.3. Я не разработчик Django, в основном я занимаюсь .Net, но меня попросили помочь с CSS и HTML. Все прошло хорошо, так что теперь мы здесь...
В настоящее время у нас есть импортированный компонент Bootsrap4 Link/Button, который имеет гораздо больше опций, чем нужно PM и чем нужно конечным пользователям.
Этот импортируемый плагин имеет 2 уровня внутренних ссылок, и второй уровень является иерархическим (с отступом), как показано ниже:
Я, кажется, могу создать внутреннюю ссылку в моем пользовательском компоненте Button, но она имеет только один выпадающий список страниц (каждая из которых почему-то дублируется, значения дубликатов разные, если это что-то значит), и они не отступают (иерархические) вообще.
Я гуглил и прочее без особого успеха. Я смог покопаться в репозиториях и тому подобном, чтобы получить часть исходного кода, но это становилось безумно глубоким, как далеко заходит спагетти-код. Вот тут-то вы и пришли на помощь. Мне нужен простой компонент, позволяющий пользователю выбрать страницу в CMS. Я понимаю, почему все наследования и тому подобное полезны, но мне нужны только одно или два свойства, которые мне действительно нужны в моем компоненте.
Вот models.py:
class CustomButton(CMSPlugin):
link_is_optional = True
name = models.CharField(
verbose_name=_('Display name'),
blank=True,
max_length=255,
)
internal_link = models.ForeignKey(
Page,
verbose_name=_('Internal link'),
blank=True,
null=True,
on_delete=models.SET_NULL,
help_text=_('If provided, overrides the external link.'),
)
Вот мой cms_plugins.py:
@plugin_pool.register_plugin
class CustomButton(CMSPluginBase):
model = CustomButton
name = _('Custom Button')
module = _('Custom Plugins')
render_template = 'cms_plugins/button.html'
cache = False
allow_children = True
Эти дают мне плоский выпадающий список. Любая помощь будет очень признательна.