У меня есть модель на основе модели Wagtails Page
, и я назначаю собственный виджет одному из полей моделей. Можно ли сделать экземпляр модели доступным в шаблонах HTML при отображении представления администратора? Мне нужен виджет в представлении администратора, чтобы знать, к какому идентификатору SimplePage
принадлежит виджет, т.е. получить значение {{ page.id }}
.
# models.py
class SimplePage(Page):
name = RichTextField(blank=True)
geom = PointField()
content_panels = Page.content_panels + [
FieldPanel("name"),
FieldPanel("geom", widget=LeafletWidgetWithMedia()),
]
# widgets.py
class LeafletWidgetWithMedia(LeafletWidget):
include_media = True
template_name = "admin/widget.html"
Я знаю, что могу обновить контекст моего виджета примерно так:
# widgets.py
# ...
def get_context(self, name, value, attrs):
value = None if value in validators.EMPTY_VALUES else value
context = super(LeafletWidget, self).get_context(name, value, attrs)
context.update(self._get_attrs(name, attrs))
return context
Но я не могу понять, как вставить свой экземпляр SimplePage
в виджет для обновления контекста. (Я также попробовал Wagtails before_edit_page
hook без успеха.)