簡體   English   中英

Django 按多對多關系排序

[英]django sort by manytomany relationship

我有以下模型:

class Service(models.Model):
    ratings = models.ManyToManyField(User)

現在,如果我想獲得按降序排序的所有服務,我做了一些事情:

services_list = Service.objects.filter(ratings__gt=0).distinct()
services_list = list(services_list)
services_list.sort(key=lambda service: service.ratings.all().count(), reverse=True)

正如你所看到的,它是一個三步過程,我對此感覺不對。 有誰知道更好的方法來做到這一點?

怎么樣:

from django.db.models import Count
service_list = Service.objects.annotate(ratings_num=Count('ratings')).filter(ratings_num__gt=0).order_by('-ratings_num')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM