Неправильная связанная страница в Wagtail CMS

Я столкнулся со странным поведением при создании блога с помощью Wagtail CMS 1.3.1.

Есть случай:

У меня есть страница A, которая должна иметь отношение к страницам B и C.

  B
 /
A
 \
  C

Вот как выглядит модель моей страницы

# Post related page item    
class PostRelatedPage(models.Model):
    link_page = models.ForeignKey(
        'wagtailcore.Page',
        null=True,
        blank=True,
        related_name='+'
    )

    panels = [
        PageChooserPanel('link_page')
    ]

    class Meta:
        abstract = True


class PostRelatedPageItem(Orderable, PostRelatedPage):
    page = ParentalKey('core.PostPage', related_name='related_posts')


# Post page model
class PostPage(Page):
    ...

PostPage.content_panels = [
    ...
    InlinePanel('related_posts', label="Related posts"),
]

Хорошо, это выглядит правильно. Но когда я ссылаюсь на свою страницу A, связанные страницы B и C, моя страница ссылается сама на себя.

  A
 /
A
 \
  A

Что случилось?


person user2077469    schedule 10.03.2016    source источник
comment
Какое именно неправильное поведение вы видите? (Например, отображается ли что-то не то в шаблоне страницы? Если да, опубликуйте код своего шаблона.)   -  person gasman    schedule 10.03.2016
comment
Да неправильно показывает. Код моего шаблона выглядит так: code{% для связанных в self.related_posts.all %}{{ related.page }}{% endfor %}. Я думаю, что проблема в моем шаблоне. Может быть, мне нужно обращаться не к странице, а к странице link_page?   -  person user2077469    schedule 10.03.2016


Ответы (1)


Проблема в коде, который вы используете для вывода ссылок:

{% for related in self.related_posts.all %}{{ related.page }}{% endfor %}

Здесь related — это объект PostRelatedPageItem, а related.page указывает на страницу, к которой он прикреплен. Вместо этого вы должны использовать related.link_page.

person gasman    schedule 10.03.2016