Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

193
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!