Крутий метод, мені зайшов. Тут досить коротко, як для себе. Для кого замало я навіть знаю хто краще допоможе ніж гугл але якось іншим разом.
- 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)
- Додаємо, наприклад до 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
- в шаблоні:
{% 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 відформатує як треба. тут код для розуміння - далі усе як з HomePage – створюємо в адмінці, а BlogPost будуть відображатись на ньому без додаткових дій