Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

241
Vistas
¿Cómo enumerar todos los objetos de un modelo particular en Django Rest Framework?

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í: ingrese la descripción de la imagen aquí

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 here

serializadores:

 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']
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

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 = 1

De lo contrario

 class ReceiptSerializer(serializers.HyperlinkedModelSerializer): products = ProductSerializer(many=True, read_only=True) ... class Meta: model = Receipt fields = ['id', 'purchase_date', 'shop', 'products']
over 4 years ago · Santiago Trujillo Denunciar

0

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__'
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda