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

168
Vistas
Tengo algunos problemas para diseñar el punto final de la API para mi aplicación Django (DRF)

Estoy diseñando una API para un proyecto de E-learning. La plataforma permite a los estudiantes realizar pruebas en línea. Las pruebas contienen preguntas y las preguntas pueden tener múltiples opciones. A continuación se muestra el esquema de mi aplicación:

 Test: id: Primary Key duration: Integer created: Timestamp Question: id: Primary Key serial: Integer test: Foreign Key (Test) body: Char Field Option: id: Primary Key question: Foreign Key (Question) body: Char Field correct: Boolean Field StudentSelectedOption: id: Primary Key question: Foreign Key (Question) student: Foreign Key (User) option: Foreign Key (Option)

Ahora, el problema es que quiero crear un punto final para las opciones seleccionadas de los estudiantes que regresan según el usuario solicitante.

 /test/<int:test_id>/student-answers/

Por ejemplo, si algún usuario quiere obtener sus respuestas para la identificación de prueba 1, irá a /test/1/student-answers/ (El usuario se extraerá del objeto de solicitud, porque estoy usando autenticación de token)

Pero no puedo filtrar las opciones seleccionadas relacionadas con la identificación de prueba y el usuario. ¿Alguien me puede ayudar?

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

0

Para devolver un conjunto de consultas filtrado en DRF APIVIew, puede anular el método get_queryset de esta manera:

Suponga que ya tiene un StudentSelectedOptionSerializer

 from rest_framework.generics import ListAPIView class StudentSelectedOptionListView(ListAPIView): serializer = StudentSelectedOptionSerializer def get_queryset(self): """ This view should return a list of all answer of a specific test for the currently authenticated user. """ user = self.request.user test_id = username = self.kwargs['test_id'] queryset = StudentSelectedOption.objects.filter(question__test_id=test_id, student_id=user.id) return queryset

Nota: puede recorrer "caminos de relación" usando la sintaxis __ de Django para filtrar campos en un modelo relacionado. EX: question__test_id en su caso. Más información sobre el filtro DRF . Y el filtro Django a través de la clave externa

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