DEV Community

Cover image for Restringir o bloquear elementos en django, hacer que se logueen para mostrarlo.
Rodrigo Lazo
Rodrigo Lazo

Posted on

2 2

Restringir o bloquear elementos en django, hacer que se logueen para mostrarlo.

Hola, ¿cómo están?, en esta ocasión les estaré mostrado como restringir o bloquear elementos en django, solo los usuarios que iniciaron sesión podrán ver los elementos bloqueados.

Si deseamos exigir que el usuario este iniciado sesión para mostrar una acción o funcionalidad debemos realizar los siguientes pasos:

  1. En views.py importamos una librería
    from django.contrib.auth.decorators import login_required

  2. y insertamos el siguiente código encima o al inicio de la función que se requiera exigir inicio de sesión @login_required(login_url='Direcion ala cual queremos direccionar')

*Ejemplo: *

from django.contrib.auth.decorators import login_required

@login_required(login_url='insertUrl')
def editPost(request, pk):
    post =  Post.objects.get(id=pk)
    form = PostForm(instance=post)
    if request.method == 'POST':
        form = PostForm(request.POST, request.FILES, instance=post)
        if form.is_valid():
            form.save()
        return redirect ('/')    
    context = {'form':form}
    return render (request, 'index.html',context)
Enter fullscreen mode Exit fullscreen mode

y de esa manera es como bloquemos o restringimos el acceso a cualquier usuario que no este logeado...

Ahora bien si deseamos no mostrar algún elemento en concreto como un botón, imagen o cualquier otro elemento en un documento .html se puede realizar utilizando el siguiente código:
{% if request.user.is_authenticated %}
{% endif %}

Ejemplo:

{% if request.user.is_authenticated %}
<a class="btn btn-sm btn-primary" href="{% url 'editUrl' post.id %}">Edit</a>
{% endif %}
Enter fullscreen mode Exit fullscreen mode

Demostración:

Image description

En esta imagen no se muestra el botón Edit.

Pero si no registramos nos mostraba esa opción
Acceder a http://localhost:8000/admin para iniciar sesion
Image description

Regresamos ala página y nos mostrará la opción

Image description

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay