Tengo dos modelos :
class Product(models.Model): name = models.CharField(max_length=200) price = models.DecimalField(default=0, decimal_places=2, max_digits=10) def __str__(self): return self.name class Receipt(models.Model): purchase_date = models.DateTimeField(auto_now=True, null=False) shop = models.ForeignKey(Shop, on_delete=models.SET_NULL, null=True) products = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True) def __str__(self): return super().__str__() La URL de mi recibo se ve así: 
Y me gustaría que mostrara una lista de todos los productos, en lugar de una cantidad de ellos. ¿Como hacer esto?
Mis conjuntos de vistas:
class ReceiptViewSet(viewsets.ModelViewSet): queryset = Receipt.objects.all() serializer_class = ReceiptSerializer permission_classes = [AllowAny] class ProductViewSet(viewsets.ModelViewSet): queryset = Product.objects.all() serializer_class = ProductSerializer permission_classes = [AllowAny] enter code hereserializadores:
class ProductSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Product fields = ['id', 'name', 'price'] class ReceiptSerializer(serializers.HyperlinkedModelSerializer): products = serializers.PrimaryKeyRelatedField(read_only=True) class Meta: model = Receipt fields = ['id', 'purchase_date', 'shop', 'products']Simplemente puede especificar representaciones anidadas usando la opción de depth
Prueba esto
class ReceiptSerializer(serializers.HyperlinkedModelSerializer): ... class Meta: model = Receipt fields = ['id', 'purchase_date', 'shop', 'products'] depth = 1De lo contrario
class ReceiptSerializer(serializers.HyperlinkedModelSerializer): products = ProductSerializer(many=True, read_only=True) ... class Meta: model = Receipt fields = ['id', 'purchase_date', 'shop', 'products']Probé la solución de Sumithran pero hice un pequeño ajuste, en lugar de usar serializadores.HyperlinkedModelSerializer usé serializadores.ModelSerializer y mostró los productos de la siguiente manera Ver
Espero que responda a lo que buscas :)
from rest_framework import serializers class ReciptSerializer(serializers.ModelSerializer): class Meta: model = Receipt fields = ['id', 'purchase_date', 'shop', 'products'] depth = 1 class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product fields = '__all__'