Как сделать, чтобы выводились по дате сначала новые записи, потом более старые.
Сейчас выводится наоборот сначала старые
views.py:
from django.shortcuts import render, get_object_or_404
from post.models import Post
from django.utils import timezone
def home(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
return render(request, 'frontend/home.html', {'posts': posts})
Модель:
class Post(models.Model):
class Meta:
db_table = "post"
author = models.ForeignKey('auth.User', default='user')
title = models.CharField(max_length=200)
text_preview = models.TextField(max_length=100, default='')
image_preview = models.ImageField(upload_to = 'img/', default='')
text = models.TextField(default='')
created_date = models.DateTimeField(default=timezone.now)
published_date = models.DateTimeField(blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __unicode__(self):
return self.title
Ответ
Для того, чтобы вывести записи по убыванию, надо в order_by перед названием поля поставить "-".
def home(request):
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
return render(request, 'frontend/home.html', {'posts': posts})
Комментариев нет:
Отправить комментарий