Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda