python - 在 Django 的同一视图中输出两个模型的计数
问题描述
class Album(models.Model):
title = models.CharField(max_length=100, blank=True, default='')
price = models.FloatField()
upload_time = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ('upload_time',)
class Status(models.Model):
user_id = models.IntegerField()
album_id = models.IntegerField()
favorite = models.BooleanField(default=False)
purchase = models.BooleanField(default=False)
history = models.BooleanField(default=False)
def __str__(self):
return self.user_id
在ModelViewSet
我这样写:
class index(viewsets.ModelViewSet):
serializer_class = AlbumSerializer
queryset = Album.objects.all()
如上图所示,我需要输出每个的购买次数Album
,例如Album
1 已购买 4 次,Album
3 已购买 1 次。
但是现在,我的索引视图只生成Album
数据模型中的字段。
我应该怎么做才能实现这一点,为每个添加购买编号Album
?需要你的帮助...
解决方案
你可以在你的序列化程序类中添加这样的东西来计算它:
class AlbumSerializer(serializers.ModelSerializer):
purchase_count = serializers.SerializerMethodField(read_only=True)
def get_purchase_count(self, obj):
return Status.objects.filter(album_id=obj.id, purchase=True).count()
推荐阅读
- json - 对 Pre Fill DocuSign 模板的 API 调用不起作用
- image - 在带有外部链接的地图函数中动态渲染 React Native 图像
- sas - 具有多个索引的变量范围
- c - 为什么我的命令窗口在传递标签时显示总线错误?
- vba - 访问处理 无当前记录
- unicode - 组合任意 Unicode 符号或负宽度的 Unicode 字符
- java - jooq代码生成mysql远程db maven
- ios - UserDefaults 在同一应用组中具有不同的值
- c - make: *** 没有指定目标,也没有找到 makefile。停止。在 Xcode 上
- c++ - 如何在模板类中使用模板