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

335
Vistas
Django UserPassesTestMixin, ¿Error de bucle en get_absolute_url?

Vistas.py

 class ProfileCreate(LoginRequiredMixin, UserPassesTestMixin, UpdateView): model = User form_class = ProfileForm template_name = "profile/profile_new.html" slug_field = "username" def get_login_url(self): return reverse('account_login') def test_func(self): a = self.request.user.username # print (a) b = self.kwargs['slug'] # print (b) x = self.get_object().full_name # print (x) y = '' if a == b: if x == y: return True else: def get_absolute_url(self): return reverse('profile:view_profile', kwargs={"slug": self.request.user.username}) class ProfileEdit(LoginRequiredMixin, UserPassesTestMixin, UpdateView): model = User form_class = ProfileForm template_name = "profile/profile_new.html" slug_field = "username" def get_login_url(self): return reverse('account_login') def test_func(self): a = self.request.user.username #print (a) b = self.kwargs['slug'] #print (b) x = self.get_object().full_name #print (x) y = '' if a == b: if x != y: return True else: def get_absolute_url(self): print("failing") return reverse('profile:profile_view', kwargs={"slug": self.request.user.username})

Explicación LoginRequiredMixin obliga al usuario a iniciar sesión. Controles UserPassesTestMixin

  1. si nombre_completo es ''(vacío)

  2. si el nombre de usuario del usuario que inició sesión es el mismo que el campo slug

test_func() es todo correcto cuando devuelve True, pero en el bucle else , es decir, si la condición de prueba falla, la vista debería redirigir a 'profile_view' pero no lo hace. Obtengo la salida "failing" en la terminal. solo cuando hago lo mismo dentro de la función get_absolute_url() no funciona. La función get_absolute_url() completa no funciona. ¿Qué estoy haciendo mal aquí?

nota: el proceso total parece estar en un bucle aquí

  1. OBTENER /usuario1/editar/HTTP/1.1" 302 0

  2. GET /as/login/?next=/usuario1/editar/HTTP/1.1" 302 0

estas dos URLS siguen en bucle.

over 4 years ago · Santiago Trujillo
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