def courses_content_view(request, content_id): # Tomando información del usuario user_id = request.user.id # Verificar que el docente tenga contenido creado try: # Recuperar el contenido que creó el profesor contents = ContenidoInteractivo.curso.through.objects.filter( contenidointeractivo_id=content_id) user = request.user user_with_roll = user.get_real_instance() if user_with_roll.__class__.__name__ == 'Profesor': if not contents: contents_list = Curso.objects.filter(profesor_id=user_id) else: contents_list = Curso.objects.filter( profesor_id=user_id).exclude( pk__in=Subquery(contents.values('curso_id'))) else: cursos_ids = Grupo.objects.filter( estudiante=user_with_roll).values_list('curso_id', flat=True) contents_list = Curso.objects.filter(pk__in=list(cursos_ids)) except (KeyError, Curso.DoesNotExist): # devolver vacio si no existe contenido creado por el usuario return JsonResponse({}) else: # Devolver los resultados de la consulta en formato JSON serializer_class = CursoSerializer(contents_list, many=True) response = Response(serializer_class.data, status=status.HTTP_200_OK) response.accepted_renderer = JSONRenderer() response.accepted_media_type = "application/json" response.renderer_context = {} return response
class ProfesorSerializer(serializers.ModelSerializer): cursos = CursoSerializer(many=True, read_only=True) class Meta: model = Profesor fields = ('username', 'first_name', 'last_name', 'email', 'direccion', 'telefono', 'facultad', 'cursos')
def courses_view(request): # Tomando información del usuario user_id = request.user.id try: # Recuperar el contenido que creó el profesor contents_list = Curso.objects.filter(profesor_id=user_id).filter() except (KeyError, Curso.DoesNotExist): # devolver vacio si no existe contenido creado por el usuario return JsonResponse({}) else: # Devolver los resultados de la consulta en formato JSON serializer_class = CursoSerializer(contents_list, many=True) response = Response(serializer_class.data, status=status.HTTP_200_OK) response.accepted_renderer = JSONRenderer() response.accepted_media_type = "application/json" response.renderer_context = {} return response