Способ показать последние 4 записи блога на моей странице

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

Вот мой код:

Models.py

class BlogPost(models.Model):
    blog_title = models.CharField(max_length=48)
    blog_article = RichTextUploadingField(null=True, blank=True, default="ici")
    blog_image = models.ImageField(null=True, blank=True, upload_to="images", default="default.png")
    blog_date = models.DateField(auto_now_add=True)
    blog_published = models.BooleanField(default=False)
    blog_featured = models.BooleanField(default=False)

    def publish(self):
        self.blog_date = timezone.now()
        self.save()

    def __str__(self):
        return self.blog_title

Views.py

def blogTest(request):
    posts = BlogPost.objects.filter(blog_date__lte=timezone.now()).order_by('blog_date')
    context_blog = {'posts': posts}

    return render(request, 'blogtest.html', context_blog)

def latestPosts(request):
    latest = BlogPost.objects.filter(blog_date__lte=timezone.now()).reverse()[:3]
    return render(request, 'blogtest.html', {'latest': latest})

Шаблон

 <div class="blog-post-container">
      <div class="row">
        <h1 id="lastest-blogs-title" style="text-align: center;">Latest Blogs</h1>
        {% for latestpost in latest %} {% if latestpost.blog_published is True %}
          <div class="col-md-4" id="bloggrid1">
            <hr>
              <div class="blog-post">
                <div class="blog-content">
                      <img class="blog-img"src="{{latestpost.blog_image.url}}"alt="My image"/>
                      <h2 class="blog-title">{{latestpost.blog_title}}</h2>
                      <hr id="blog-hr" style="width: 90%" />
                      <article class="blog-article">
                        <p>{{latestpost.blog_article|truncatechars_html:265|safe}}</p>
                      </article>
                      <a href="{% url 'viewblog' post.id %}"class="btn btn-secondary"type="button"class="blog-button">Read More...</a>
                      <p class="blog-date">Posted on: {{latestpost.blog_date}}</p>
                    </div>
                </div>
              </div>
              {% endif %} {% empty %}
              <h3>No Blog Uploads</h3>
              {% endfor %}
          </div>
      </div>
    </div>

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

Нужно отсортировать набор запросов, но не фильтровать набор запросов с помощью blog_date

qs = BlogPost.objects.filter(blog_date__lte=timezone.now()).order_by('-blog_date')[:3]

Попробуйте это, если вы хотите получить последние 4 добавленные записи на основе первичного ключа...

latest = BlogPost.objects.order_by('-pk')[:4]

Попробуйте это, если вы хотите получить последние 4 добавленные записи на основе поля даты

latest = BlogPost.objects.order_by('-blog_date')[:4]

Ваш код шаблона подходит для загрузки записей, переданных через контекст

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