Как использовать 1 master(page или model.Model) для многих catigories(page)?
Я хочу получить что-то вроде этого:
но я понятия не имею, как это сделать в трясогузке (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. Например, вы можете запросить "все страницы продукта с тегом "новый"" или "обучение, связанное с этим продуктом".
Если вы сможете сделать шаг назад и лучше представить нам что вы хотите сделать, тогда мы сможем лучше посоветовать вам как это сделать.