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

130
Vistas
Uso de vistas para cambiar la respuesta DRF

Me gustaría modificar la respuesta de una API.

Sin embargo, no altera el resultado adecuadamente. Obtengo un KeyError: 'game' .

No estoy seguro de por qué, ya que mi respuesta de API (a través de URL) parece tener el valor del game . Puede que me esté confundiendo con la respuesta JSON y el objeto python.

Tengo una muestra de la respuesta de la API a continuación

resultados de la API

 { "pk": 995, "game": [ { "name": "Finance", "gamelevel": 3 }, { "name": "Data", "gamelevel": 1 } ] },

vistas.py

 class TagList(viewsets.ModelViewSet): queryset = Task.objects.filter(game__isnull=False).all() serializer_class = TagSortSerializer def get_queryset(self): test = self.queryset.values('title', 'game__name') result = defaultdict(set) for item in queryset: parent = {'name': 'NoLevel_1'} children = [] for game in item['game']: if game['gamelevel'] == 1: parent = game else: children.append((game['gamelevel'], game['name'])) result[parent['name']].update(children) result = [ { 'name': parent, 'game_child': [ {'name': name, 'gamelevel': gamelevel} for gamelevel, name in games ], 'gamelevel': 1, } for parent, games in result.items() ] return result
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Está utilizando el método de conjunto de consultas de values para obtener solo una selección de campos del modelo, y los únicos campos que ha especificado son title y tag__name . Por lo tanto, no obtendrá game ni ninguna de las otras claves que ha utilizado.

Ciertamente no querrás usar values aquí en primer lugar; simplemente haga una consulta normal y acceda a los campos a través de una búsqueda de puntos en lugar de un diccionario.

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