Нужна инструкция по джанго трясогузке - PullRequest
0 голосов
/ 18 сентября 2018

В настоящее время я пытаюсь интегрировать трясогузку с существующим проектом django.

Я новичок в трясогузке, и все еще узнаю о трясогузке

class BlogPage(Page):
body = RichTextField(blank=True)
categories = ParentalManyToManyField('blog.BlogCategory', blank=True)
location = models.ForeignKey('blog.Location', on_delete=models.PROTECT)

, а затем я регистрирую категорию имодель местоположения в виде фрагментов.

как наилучшая практика для страницы сборки содержит BlogPage с определенной категорией / местоположением?

и как вызвать эту страницу из меню django

илиМожет быть, где я могу найти документацию для интеграции трясогузки в существующий проект Django

Спасибо

1 Ответ

0 голосов
/ 18 сентября 2018

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

Возможно, вы захотите использовать RoutablePageMixin (если вы не создаете SPA с Vue или React). RoutablePageMixin позволяет автоматически создавать дополнительные дочерние страницы без необходимости создавать дочерние страницы Wagtail.

from wagtail.contrib.routable_page.models import RoutablePageMixin, route


class BlogListingPage(RoutablePageMixin, Page):
    """BlogListingPage class."""

    template = 'cms/blog/blog_listing_page.html'
    subpage_types = ['pages.BlogPage']

    # ... other fields here

    @route(r'^category/(?P<cat_slug>[-\w]*)/$', name='category_list')
    def category_list(self, request, cat_slug):
        """Return posts in a certain category."""
        context = self.get_context(request)
        posts = BlogPage.objects.live().filter(categories__slug=cat_slug).order_by('-pub_date')
        context['posts'] = posts
        return render(request, 'cms/blog/blog_category_page.html', context)

Примечание Я не протестировал этот код, возможно, вам придется исправить все ошибки и настроить его в соответствии с вашими потребностями.

Приведенный выше код займет страницу со списком вашего блога (скажем, localhost: 8000 / blog /) и создаст страницу со списком категорий (т.е. localhost: 8000 / blog / category / topic-slug /)

То, что topic-slug будет передано в метод category_list(), где вы можете затем отфильтровать свой BlogPage по категории (категориям), в которой он находится. Он добавит posts на вашу страницу и отобразит другую страницу со списком. где вы можете настроить свой шаблон.

Прошло много времени с тех пор, как я проверил, но демоверсия Wagtail Bakery , вероятно, содержит примеры этого (и много действительно сладких вкусностей).

Подробнее о маршрутизируемых страницах трясогузки можно узнать по https://docs.wagtail.io/en/latest/reference/contrib/routablepage.html.

...