Крошка трясогузки с поддержкой нескольких языков
Я пытаюсь настроить раздел крошки в трясогузке. К счастью, Bake Demo предоставляет отличный пример, который представляет собой просто тег шаблона, который возвращает список предков текущей страницы.
@register.inclusion_tag('tags/breadcrumbs.html', takes_context=True)
def breadcrumbs(context):
self = context.get('self')
if self is None or self.depth <= 2:
# When on the home page, displaying breadcrumbs is irrelevant.
ancestors = ()
else:
ancestors = Page.objects.ancestor_of(
self, inclusive=True).filter(depth__gt=1)
return {
'ancestors': ancestors,
'request': context['request'],
}
Проблема с этим кодом в том, что мне нужна языковая поддержка для отображения ссылок на текущем языке. Поскольку мои поля перевода расположены в производных классах Page, мне нужно найти соответствующий перевод.
1 ответ
Я думаю, что нашел решение этой проблемы: чтобы получить свой пользовательский объект Page, мне нужно добавить "определенный" метод, изменив эту строку:
ancestors = Page.objects.ancestor_of(self, inclusive=True).specific().filter(depth__gt=1)
Теперь я могу использовать свое собственное поле в шаблоне. что-то вроде этого {{ancestors.custom_field}}