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 |