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

200
Vistas
mostrar el botón de edición solo si el usuario que inició sesión es el mismo que la página del usuario?

ejemplo:

1.ejemplo.com/nombredeusuario1

2.ejemplo.com/nombredeusuario2

quiero llevar al usuario a la página de edición de perfil, obtuve todos los permisos funcionando correctamente y configuré las vistas en consecuencia.

Mi problema:

Inicié sesión como nombre de usuario1, por lo que no debería poder acceder a example.com/username2/edit/ . Conseguí que esto funcionara en las vistas agregando algunos permisos, pero no quiero mostrar el botón de edición cuando el nombre de usuario1 registrado ve la página de nombre de usuario2. Ahora uso {% if user.is_authenticated %} y esto da como resultado que se muestre el botón de edición en la página de nombre de usuario2 aunque el usuario que ha iniciado sesión es el nombre de usuario1.

¿Alguna solución simple que se pueda usar en las plantillas directamente?

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

0

vistas.py

 class CanEditMixin(object): def get_context_data(self, **kwargs): """ The method populates Context with can_edit var """ # Call the base implementation first to get a context context = super(CanEditMixin, self).get_context_data(**kwargs) #Update Context with the can_edit #Your logic goes here (something like that) if self.request.user.slug == self.kwargs['slug']: context['can_edit']=True else: context['can_edit']=False return context

class ProfileView(CanEditMixin, UserPassesTestMixin, DetailView): .....

plantilla.html

 {% if can_edit %} <a href="#">Edit</a> {% endif %}
over 4 years ago · Santiago Trujillo Denunciar

0

puede verificar si request.user es el mismo que el usuario al que está asignada la URL. En su solicitud, tiene una clave llamada 'usuario' que es su usuario registrado (si está registrado) o anónimo (si no está registrado).

{% if user.is_authenticated %} es para comprobar si el usuario está autenticado (como dice el nombre), es decir, si el usuario es un usuario válido (por ejemplo, hizo clic en el enlace del correo electrónico).

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