Estoy usando django y django rest framework para hacer una consulta de todos los usuarios en datos que tienen un permiso enviado como parámetro de URL, pero esta consulta está tardando demasiado.
Soy usuario del depurador de pycharm, ¿cómo puedo intentar comprobar por qué tarda tanto? Esta es la función:
@list_route(url_path='permission/(?P<permission>.+)') def read_permission(self, request, *args, **kwargs): serializer = self.get_serializer_class() qs = get_user_model().objects.filter_by_permission(self.kwargs.get('permission')) qs = qs.order_by(Lower('username')) return Response(serializer(qs, many=True).data)Agregar el serializador
class UserSerializer(UserLabelMixin): user_permissions = serializers.SlugRelatedField(many=True, read_only=True, slug_field='codename') class Meta: model = get_user_model() fields = ['id', 'email', 'is_superuser', 'is_staff', 'label', 'full_name', 'first_name', 'last_name', 'username', 'teams', 'date_joined', 'last_login', 'user_permissions', 'groups', 'ui_preferences', 'internal_project', 'staff_id', 'oem_id', 'oem_email', 'oem_department', 'comment'] read_only_fields = fieldsesto puede ayudarte
get_user_model().objects.prefetch_related("user_permissions", "groups").filter_by_permission...