Python 使用注释的Django数据分组
我有这两种型号Python 使用注释的Django数据分组,python,django,api,Python,Django,Api,我有这两种型号 class Car(TimeStampedModel): name = models.CharField(_('Car Name'), max_length=50) manager = models.ForeignKey( 'cars.Manager', verbose_name=_('Car Manager'), related_name='cars', on_delete=models.CASCADE )
class Car(TimeStampedModel):
name = models.CharField(_('Car Name'), max_length=50)
manager = models.ForeignKey(
'cars.Manager',
verbose_name=_('Car Manager'),
related_name='cars',
on_delete=models.CASCADE
)
def __str__(self):
return self.name
class Manager(models.Model):
name = models.CharField(_('Name'), max_length=25)
class Meta:
verbose_name = _('Car Manager')
verbose_name_plural = _('Car Managers')
def __str__(self):
return self.name
我还创建了这个序列化程序
class CarManagerSerializer(serializers.ModelSerializer):
class Meta:
model = Manager
fields = '__all__'
然后在视图上,我尝试通过这种方式获得每个经理管理的车的数量
def get(self, request):
cars_managers = Manager.objects.all().annotate(number_of_managed_cars=Count('cars'))
serializer = CarManagerSerializer(cars_managers, many=True)
serializer_data = serializer.data
return Response(serializer_data, status=status.HTTP_200_OK)
然后我尝试点击端点:
{
{
"id": 1,
"name": "John Doe",
}
}
结果上没有多少辆管理的车
我接着说:
仍然不能得到正确的结果
我错过了哪里?您需要在serializer类中指定
受管车辆的数量
字段
class CarManagerSerializer(serializers.ModelSerializer):
number_of_managed_cars = serializers.IntegerField(read_only=True)
class Meta:
model = Manager
fields = '__all__'
类CarManagerSerializer(serializers.ModelSerializer):
托管车的数量=序列化器。整型字段(只读=真)
类元:
模型=管理器
fields='\uuuuu all\uuuuu'您的
CarManagerSerializer
类在哪里?我刚刚添加了@JPG