Страницы

Поиск по вопросам

четверг, 20 июня 2019 г.

Фильтр в Django по дате

Как сделать, чтобы выводились по дате сначала новые записи, потом более старые. Сейчас выводится наоборот сначала старые
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})

Комментариев нет:

Отправить комментарий