Django의 템플릿 내에서 Auth 애플리케이션의 권한 검사를 사용할 수 있나요? (권한이있는 사용자를 위해 템플릿 끝에 간단한 양식을 표시하고 싶습니다.)
그리고 더 중요한 것은 내가 그것을해야 하는가 아니면 이것이 "장고 방식"이 아닌가?
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.app_label.foobar
경우 권한 이름을 잘못 입력 한 경우에도 항상 true가됩니다.
Django 2.0 이상에서 테스트 됨
로그인 한 사용자가 가진 모든 권한을 보려면 템플릿 (.html)에서 다음을 인쇄하십시오.
{{ perms.app_name }}
또는
{{ perms }}
사용자에게 권한이 있는지 확인하려면 다음을 사용하십시오.
{% if perms.app_name.change_model_name_lower_cased %}
예 :
{% if perms.Utilization.change_invoice %}
여기 : Utilization은 내 앱 이름입니다. 송장은 모델 이름입니다.
일반적으로 다음과 같은 4 가지 종류의 권한이 있습니다.
또한 사용자가 속한 그룹으로 인해 사용자가 가진 모든 권한을 보려면 Django 셸을 시작합니다.
user = User.objects.get(username='somename')
user.get_group_permissions()
여기에 나열된 모든 권한은 그가 속한 그룹 때문입니다.
perms (예 : 특정 개체)를 확인하는 데 더 세분화가 필요한 경우 다음 확장을 확인하십시오. http://django-authority.readthedocs.org/en/latest/check_templates/
이 게시물을 '발견'해서 미안하지만 권한과 관련된 문제가 있습니다. 내 게시물을 참조하십시오. Django : 권한을 사용하여 템플릿에 논리가 잘 적용되지 않음 (perm
Arindam 이음새가이 개념에 매우 익숙해지기 때문에 그 또는 다른 사람이 나를 도울 수 있기를 바랍니다.
내 템플릿에서 {{perms}}를 찾을 때 값이 정확하더라도 perms가 적용되지 않습니다. {{perms.randomization.can_randomize}}를 검색하면 개체가 반환되지만 권한 목록은 반환되지 않습니다. False (또는 True)를 반환합니다. ) 내 앱의 이름이 randomization이고 무작위 화 앱의 일부인 Randomization 모델 (메타 사용)에서 can_randomize 권한을 정의합니다.
settings.py를 확인하지만 모든 솔기가 괜찮습니다.