Restingir o bloquear elementos en django, hacer que se logueen para mostrarlo.
Si deseamos exigir que el usuario este iniciado sesión para mostrar una acción o funcionalidad debemos realizar los siguientes pasos:
from django.contrib.auth.decorators import login_required
*예제: *
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)
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 %}
예시:
{% if request.user.is_authenticated %}
<a class="btn btn-sm btn-primary" href="{% url 'editUrl' post.id %}">Edit</a>
{% endif %}
시위:
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
Regresamos ala página y nos mostrará la opción
Reference
이 문제에 관하여(Restingir o bloquear elementos en django, hacer que se logueen para mostrarlo.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rodrigolazo/restringir-o-bloquear-elementos-en-django-hacer-que-se-logueen-para-mostrarlo-4km2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)