[django] 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)


답변

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()

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


답변

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를 확인하지만 모든 솔기가 괜찮습니다.


답변