Django rest framework Django Rest框架中的Group by
我有一个会议模型。会议有一个用户参加。我想汇总参加会议的用户的所有会议,以显示在一些分析视图中Django rest framework Django Rest框架中的Group by,django-rest-framework,Django Rest Framework,我有一个会议模型。会议有一个用户参加。我想汇总参加会议的用户的所有会议,以显示在一些分析视图中 # models.py class Meeting(models.Model): user = models.ForeignKey(User) # urls.py router.register( r"meetings-by-user", views.MeetingsByUserViewSet, basename="meeting") ...
# models.py
class Meeting(models.Model):
user = models.ForeignKey(User)
# urls.py
router.register(
r"meetings-by-user", views.MeetingsByUserViewSet, basename="meeting")
...
path("api/", include(router.urls)),
# views.py
class MeetingsByUserViewSet(viewsets.ModelViewSet):
queryset = Meeting.objects.values("user").annotate(total=Count("id"))
serializer_class = MeetingAggSerializer
pagination_class = PageNumberPagination
# serializers.py
class UserSerializerSlim(serializers.ModelSerializer):
network_name = serializers.CharField(read_only=True, source="network.name")
class Meta:
model = User
fields = ("first_name", "network_name")
class MeetingAggSerializer(serializers.Serializer):
id = serializers.IntegerField(read_only=True)
expert = UserSerializerSlim()
total = serializers.IntegerField()
class Meta:
model = Meeting
fields = ("id", "user", "total")
打开时,我得到以下输出http://localhost:8000/api/meetings-按用户/
{
"count": 3,
"next": null,
"previous": null,
"results": [
{
"user": {},
"total": 1
},
{
"user": {},
"total": 3
},
{
"user": {},
"total": 1
}
]
}
MeetingAggSerializer似乎没有正确使用UserSerializerSlim