IT TIP

Django의 템플릿 내부에서 권한 확인

itqueen 2020. 10. 28. 21:21
반응형

Django의 템플릿 내부에서 권한 확인


Django의 템플릿 내에서 Auth 애플리케이션의 권한 검사를 사용할 수 있나요? (권한이있는 사용자를 위해 템플릿 끝에 간단한 양식을 표시하고 싶습니다.)

그리고 더 중요한 것은 내가 그것을해야 하는가 아니면 이것이 "장고 방식"이 아닌가?


템플릿에서 권한을 확인하려는 경우 다음 코드로 충분합니다.

{% if perms.app_label.can_do_something %}
<form here>
{% endif %}

여기서 model은 사용자가 양식을보기 위해 권한이 필요한 모델을 나타냅니다.

더 많은 예제 https://docs.djangoproject.com/en/stable/topics/auth/default/#permissions참조하십시오 .

현재 로그인 한 사용자의 권한은 템플릿 변수에 저장됩니다. {{ perms }}

(이렇게하려면 다음 컨텍스트 프로세서를 활성화해야합니다. django.contrib.auth.context_processors.auth)


perms (예 : 특정 객체)를 확인하는 데 더 세분화가 필요한 경우 다음 확장을 확인하십시오. http://django-authority.readthedocs.org/en/latest/check_templates/


Django 2.0 이상에서 테스트 됨

로그인 한 사용자가 가진 모든 권한을 보려면 템플릿 (.html)에서 다음을 인쇄하십시오.

{{ perms.app_name }}

또는

{{ perms }}

사용자에게 권한이 있는지 확인하려면 다음을 사용하십시오.

{% if perms.app_name.change_model_name_lower_cased %}

예 :

{% if perms.Utilization.change_invoice %}

여기 : Utilization은 내 앱 이름입니다. 송장은 모델 이름입니다.

일반적으로 다음과 같은 4 가지 종류의 권한이 있습니다.

  • 변경 [예 : Utilization.change_projectemail]
  • 보기 [예 : Utilization.view_invoice]
  • delete [예 : Utilization.delete_invoicetype]
  • add [예 : Utilization.add_invoicetype]

또한 사용자가 속한 그룹으로 인해 사용자가 가진 모든 권한을 보려면 Django 셸을 시작합니다.

user = User.objects.get(username='somename')
user.get_group_permissions()

여기에 나열된 모든 권한은 그가 속한 그룹 때문입니다.

참고 URL : https://stackoverflow.com/questions/9469590/check-permission-inside-a-template-in-django

반응형

'IT TIP' 카테고리의 다른 글

Java Date 객체에 대한 Unix epoch 시간  (0) 2020.10.28
xdebug 및 netbeans로 php-cli 스크립트 디버깅?  (0) 2020.10.28
Google Text-To-Speech API  (0) 2020.10.28
git stash 및 git pull  (0) 2020.10.28
Freemarker에서 null 값 처리  (0) 2020.10.28