Я использую django 2, и в моем представлении списка я хочу, чтобы упорядочить набор запросов по полю likecount и datetime. Основная цель - зарезервировать пост с наибольшим количеством на сегодня. Мол, хочу показать самые понравившиеся посты за сегодня. Это похоже на топ-10 сегодняшних постов (чаще всего) . Я пробовал много способов, но не могу понять это. Я надеюсь, что вы, ребята, можете мне помочь.
Мои модели.py:
class post(models.Model):
parent = models.ForeignKey("self", on_delete=models.CASCADE, blank=True, null=True)
title = models.CharField(max_length=100)
image = models.ImageField(upload_to='post_pics', null=True, blank=True)
content = models.TextField()
likes = models.ManyToManyField(User, related_name='likes', blank=True)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
restrict_comments = models.BooleanField(default=False)
watchlist = models.ManyToManyField(User, related_name='watchlist', blank=True)
def __str__(self):
return self.content
class Meta:
ordering = ['-date_posted', 'title']
def get_absolute_url(self):
return reverse ('blog-home')
def total_likes(self):
return self.likes.count()
Мои просмотры.py:
@login_required
def most_likes(request):
posts = post.objects.annotate(like_count=Count('likes')).order_by('-like_count', '-date_posted')
context = {'posts': posts}
return render(request, 'blog/most_likes.html', context)