Как упорядочить результаты поиска по дате, в которую они были созданы?

#python #django

#python #django

Вопрос:

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

views.py

     search_term=''
    if 'search' in request.GET:
        search_term_extract = request.GET['search']
        search_term = Blog.objects.filter(Q(title__icontains=search_term_extract)|Q(author__username__icontains=search_term_extract))
        paginator = Paginator(search_term, 8)
        page = request.GET.get('page')
        paginator_page = paginator.get_page(page)
        results=search_term.all()['-date_posted']
        message=True
        nav=False
 

и models.py

 class Blog(models.Model):
    title=models.CharField(max_length=100)
    content=models.TextField(blank=True)
    date_posted=models.DateTimeField(default=timezone.now)
    author=models.ForeignKey(User, on_delete=models.CASCADE)
    def __str__(self):
        return self.title
 

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

1. используйте order_by(«-date_posted») . для получения дополнительной информации: docs.djangoproject.com/en/2.1/ref/models/querysets/#order-by

Ответ №1:

Используйте .order_by() в вашем наборе запросов:

 search_term = Blog.objects.filter(Q(title__icontains=search_term_extract)|
                             Q(author__username__icontains=search_term_extract)).order_by("-date_posted")