How to make, to display by date, first new entries, then older ones. Now it’s the other way round

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}) 

Model:

 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 

    1 answer 1

    In order to display entries in descending order, it is necessary to put "-" in front of the field name in 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})