Как использовать 1 master(page или model.Model) для многих catigories(page)?

Я хочу получить что-то вроде этого:

enter image description here но я понятия не имею, как это сделать в трясогузке (1 ребенок не может иметь более 1 родителя), как 2 исправить это? Я не хочу иметь 3 главных страницы в админ панели.

Ну, я новичок в Wagtail, я знаю о сниппетах, но мне нужна главная страница. Я знаю, как это сделать в Django, но понятия не имею, когда использую Wagtail.

class Master(Page):
    name = models.CharField(max_length=200)
    contacts = RichTextField(
        blank=True,
        null=True,
    )
    image = models.ForeignKey('wagtailimages.Image',
                              blank=True,
                              null=True,
                              on_delete=models.SET_NULL,
                              related_name='+',
                              verbose_name=)

    content_panels = Page.content_panels + [
        FieldPanel('name'),
        FieldPanel('contacts'),
        FieldPanel('image'),
    ]
class ProductsIndexPage(Page):
    intro = RichTextField(blank=True)
    content_panels = Page.content_panels + [
        FieldPanel('intro', classname="full"),
        MultiFieldPanel([
            InlinePanel('products_sell', label="Product")],
            heading="Products",),
        MultiFieldPanel([
            InlinePanel('training', label="Training")],
            heading="Training", ),

    ]
class Training(AbstractProducts):
    product = ParentalKey(
        'ProductsIndexPage',
        on_delete=models.CASCADE,
        related_name='training'
    )

Что представляют собой линии на вашей диаграмме? Это наследование классов или дерево навигации? Другими словами, как главная страница связана с продуктами, обучением и расписанием?

Я думаю, что вместо того, чтобы погружаться в код, лучше описать, что вы хотите, чтобы делал ваш сайт. Например, это сайт для бизнеса, и вам нужна страница со списком всех ваших продуктов, со ссылками на подробную информацию о них?

Для отображения содержимого страниц не обязательно, чтобы страницы имели отношения на уровне модели. В этом разделе учебника Wagtail показано, как отобразить последние записи блога на странице BlogIndexPage. В этом примере используется get_children, потому что страница BlogIndexPage является родительской для всех страниц BlogPage. Но нет причин, по которым вы не можете сделать какой-либо другой запрос в get_context. Например, вы можете запросить "все страницы продукта с тегом "новый"" или "обучение, связанное с этим продуктом".

Если вы сможете сделать шаг назад и лучше представить нам что вы хотите сделать, тогда мы сможем лучше посоветовать вам как это сделать.

Вернуться на верх