Я пытаюсь показать мои последние 3 сообщения с Django, но мои три сообщения не отображаются на моей странице. Вот мой код.
У меня нет ошибок или чего-либо еще, когда я загружаю страницу и мои другие публикации появляются на моей странице.
И будьте добры, я впервые использую Python и Django =)
models.py
from django.db import models
from django.utils import timezone
class Category(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
category = models.ForeignKey('Category')
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
вид
from django.shortcuts import render
from django.utils import timezone
from .models import Category, Post
def category_list(request):
categories = Category.objects.all()
return render (request, 'blog/post_list.html', {'categories': categories})
def post_list(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
latests = Post.objects.filter(published_date__lte=timezone.now()).reverse()[:3]
return render(request, 'blog/post_list.html', {'posts': posts})
return render(request, 'blog/post_list.html', {'latests': latests})
Мои URL
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
]
шаблон html (post_list.html)
<div id="container">
{% for latest in latests %}
<article class="lastnews">
<h4>{{ latest.title }}</h4>
<h5 class="lastestcategory">{{ latest.category }}</h5>
<p class="bodysmall">{{ latest.text|truncatewords:10 }}</p>
<div>
<p class="date">{{ latest.published_date }}</p>
<p class="showmore"><a href="">Show more</a></p>
</div>
</article>
{% endfor %}
</div>
</section>
<section id="posts">
{% for post in posts %}
<article class="post">
<header class="postheader">
<h4>{{ post.title }}</h4>
<p class="info">{{ post.category }}, {{ post.published_date }}</p>
</header>
<p class="bodyregular">{{ post.text|linebreaksbr }}</p>
<footer class="postfooter">
<p class="author">Author: {{ post.author }}</p>
<p class="showarticle"><a href="">Show article</a></p>
</footer>
</article>
{% endfor %}
</section>
Спасибо за вашу помощь =)
EDIT
Я исправил свой взгляд таким образом
def latest_posts(request):
latests = Post.objects.filter(published_date__lte=timezone.now()).reverse()[:3]
return render(request, 'blog/post_list.html', {'latests': latests})
но три сообщения не появляются на моей странице