Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

169
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!