Як у Wagtail додати клас із Django

Крутий метод, мені зайшов. Тут досить коротко, як для себе. Для кого замало я навіть знаю хто краще допоможе ніж гугл але якось іншим разом.

  1. Django модель як звичайно в туторіалах скрізь де треба зареєстрована (в settings.py як app, admin.py – все як треба в Django):
    class BlogPost(models.Model):
        title = models.CharField(max_length=255)
        body = models.TextField()
        pub_date = models.DateTimeField(auto_now_add=True)
  2. Додаємо, наприклад до HomePage:
    class HomePage(Page):
        body = RichTextField(blank=True)    
        def get_context(self, request):
            context = super().get_context(request)
            context['blog_posts'] = BlogPost.objects.order_by('-pub_date')[:5]
            return context
  3. в шаблоні:
    {% extends "base.html" %}
    {% block content %}
    <h1>{{ page.title }}</h1>
    {{ page.body|richtext }}

    <ul>
    {% for post in blog_posts %}

    <li>{{ post.title }} - {{ post.pub_date }}</li>
    {% endfor %}
    </ul>
    {% endblock %}
    тут форматування не критично, з pretier відформатує як треба. тут код для розуміння
  4. далі усе як з HomePage – створюємо в адмінці, а BlogPost будуть відображатись на ньому без додаткових дій

 

Залишити відповідь