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

315
Vistas
ModelViewset en Django

Soy novato en Django Rest-framework. Uso Modelviewset para crear una API para el proyecto. Quiero obtener una lista de cosas no por identificación y uso lookup_field para hacer eso. Pero solo devuelve 1 objeto. ¿Cómo puedo personalizarlo para devolver un objeto múltiple?

este es mi modelo

 class Rating(models.Model): dayandtime = models.DateTimeField(auto_now_add=True) ratingpoint = models.IntegerField(null=True,blank=True) ratingcomment = models.TextField(null=True, blank=True) img = models.ImageField(upload_to='static',default=None) product = models.ForeignKey(Product,on_delete=models.CASCADE) user = models.ForeignKey(User,on_delete=models.CASCADE)

Estas son mis opiniones

 class RatingViewSet(viewsets.ModelViewSet): queryset = Rating.objects.all() serializer_class = RatingSerializer lookup_field = "product"

Este es mi serializador

 class RatingSerializer(ModelSerializer): class Meta: model=Rating fields=["id","dayandtime","ratingpoint", "ratingcomment","img","product","user"] lookup_field = "product"

Por favor, ayúdame a solucionar este problema. Muchísimas gracias

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Desea usar el filtro en la API y devolver múltiples objetos. Pero lookup_field se usa para realizar búsquedas de objetos de instancias de modelos individuales . Hay muchas formas de lograr su objetivo, pero le mostraré filtrar por parámetros de consulta .

Puede anular get_queryset() para manejar URL como http://yourdoamin.com/api/ratings?product=1 (aquí asumimos que desea filtrar por ID de producto).

 class RatingViewSet(viewsets.ModelViewSet): serializer_class = RatingSerializer def get_queryset(self): queryset = Rating.objects.all() product= self.request.query_params.get('product') if product not None: queryset = queryset.filter(product_id=product) return queryset

Por supuesto, puede agregar muchos bloques if/elif/else para manejar muchos parámetros de consulta.

También puede usar un método similar: la clase SearchFilter para lograr el mismo objetivo.

Más información sobre la documentación de filtrado DRF

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