Я хочу упорядочить мой список по наиболее понравившемуся контенту, например, наиболее понравившаяся вещь показывается сверху, а наиболее не понравившаяся внизу, помогите мне, пожалуйста.
Я хочу упорядочить мой список по наиболее понравившемуся контенту, например, наиболее понравившаяся вещь показывается сверху, а наиболее не понравившаяся снизу, помогите мне пожалуйста
Я использую django 3 и в моем представлении DETAIL я хочу выводить набор запросов по полю likecount. Основная цель - одорировать пост с наибольшим количеством лайков. Например, я хочу показывать наиболее понравившийся контент сверху. Это как сегодняшние топ 10 контента (наиболее понравившегося). Я пробовал много способов, но не могу понять. Надеюсь, вы сможете мне помочь.
==MODEL== это страница модели
class Post(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey(User, on_delete=models.CASCADE)
body = models.TextField()
date = models.DateField(auto_now_add=True)
class Content(models.Model):
name = models.CharField(max_length=255)
body = models.TextField()
post = models.ForeignKey(Post, related_name="contents", on_delete=models.CASCADE)
liked =models.ManyToManyField(User, default=None, blank=True, related_name='liked')
==VIEWS== это страница просмотра
class Home(ListView):
model = Post
template_name = 'home.html'
class Detail(DetailView):
model = Post
template_name = 'detailview.html'
ordering = Content.objects.annotate(like_count=Count('liked')).order_by('-like_count')
==HOME.HTML==
{% for item in object_list %}
<br>
<a href="{% url 'detail' item.pk %}">
{{item.title}}
</a>
<br>
{{item.body}}
<hr>
{% endfor %}
== Я ХОЧУ ПОКАЗАТЬ СОДЕРЖИМОЕ 'ORDER BY - MOST LIKED' НА ЭТОЙ ДЕТАЛЬНОЙ СТРАНИЦЕ ==DETAILVIEW.HTML==
{% if not post.contents.all %}
no contents yet
{% else %}
{% for content in post.contents.all %}
{{forloop.counter}}
{{ content.name}}
<br>
<form action="{% url 'like-post' %}", method="POST">
{% csrf_token %}
<input type="hidden" name="content_id" value="{{content.id}}">
{% if user not in content.liked.all %}
<button class="btn btn-success", type="submit">Like</button>
{% else %}
<button class="btn btn-danger", type="submit">Unlike</button>
{% endif %}
</form>
<strong>{{ content.liked.all.count }}</strong>
<br>
<hr>