Крошка трясогузки с поддержкой нескольких языков

Я пытаюсь настроить раздел крошки в трясогузке. К счастью, 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}}

Другие вопросы по тегам