tengo proximos modelos
class User(AbstractUser):
ip_address = models.CharField(max_length=15)
class Statistic(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='statistics')
clicks = models.PositiveSmallIntegerField()
y serializadores
class UserListSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', 'first_name', 'ip_address']
class UserStatisticSerializer(serializers.ModelSerializer):
class Meta:
model = Statistic
¿Cómo puedo obtener Response
datos en el siguiente formato:
{
'user_data': {
'id': 1, 'first_name': 'name',...,
'statistics': [
{'id': 1, 'clicks': 100},
{'id': 3, 'clicks': 550}
]
}
Voy al enlace /api/v1/users/<int:pk>/
y llamo a la siguiente función:
class UserDetailStatisticApiView(RetrieveAPIView):
queryset =???
serializer_class =???
Gracias por ayuda
Solución del problema
Vista
class UserDetailStatisticApiView(RetrieveAPIView):
queryset = User.objects.all()
serializer_class = UserListSerializer
Serializadores
class UserStatisticSerializer(serializers.ModelSerializer):
class Meta:
model = Statistic
fields = '__all__'
class UserListSerializer(serializers.ModelSerializer):
statistics = SerializerMethodField()
class Meta:
model = User
fields = ['id', 'first_name', 'statistics']
def get_statistics(self,obj):
statistics = Statistic.objects.filter(user=obj)
return UserStatisticSerializer(statistics, many=True).data
No hay comentarios.:
Publicar un comentario