【发布时间】:2022-01-10 10:13:29
【问题描述】:
这是我的模型:
class Artwork(models.Model):
id = models.BigAutoField(primary_key = True)
serial = models.IntegerField(choices=Serial.choices, default=100)
title = models.CharField(max_length=255, blank=True, null=True)
slug = models.CharField(max_length=255, blank=True, null=True)
class Views(models.Model):
id = models.BigAutoField(primary_key = True)
user = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE, related_name="views")
artwork = models.ForeignKey(Artwork, null=True, blank=True, on_delete=models.CASCADE, related_name="views")
这是我的看法
class GetArtworkLiteView(viewsets.ModelViewSet):
queryset = Artwork.objects.all()
serializer_class = GetArtworkLiteSerializer
filter_backends = [filters.OrderingFilter, DjangoFilterBackend]
filterset_fields = ['slug']
ordering_fields = ["id", "serial"]
在这里,我想在艺术品模型中按计数(视图)进行排序。 我如何为其添加逻辑,以便艺术品模型按观看次数排序 我想使用 django rest 框架来实现这个
【问题讨论】:
-
没有。这打破了 drf 标准
-
queryset = Artwork.objects.annotate(count=Count('views_set__id')).order_by('count') -
我怎样才能按降序得到这个?
-
使用
order_by('-count')
标签: django django-rest-framework