장고에서 superuser에서만 액세스 제한을 수행하는 방법
ログインしているユーザーのみ
라고 하는 액세스 제한의 방법은 일본어 자료에서도 확인할 수 있었습니다만,superuser
만이라고 하는 액세스 제한의 방법에 대해서는, 그다지 보이지 않았으므로 해설합니다.누군가의 도움이 있으면 다행입니다.
환경
함수로 개발하는 경우
데코레이터를 붙이면 됩니다.
views.py
from django.contrib.auth.decorators import permission_required
from django.http import HttpResponse
@permission_required('admin.can_add_log_entry')
def test(request):
return HttpResponse("Only access superuser!")
클래스에서 개발하는 경우
모처럼, django를 사용하고 있다면, class 베이스로 개발하고 싶네요.
그런 순간을 위한 Tips.
1. mixins.py 정의
django 앱 내에서
mixins.py
를 만듭니다.mixins.py
from django.contrib.auth.mixins import UserPassesTestMixin
class SuperuserRequiredMixin(UserPassesTestMixin):
def test_func(self):
return self.request.user.is_superuser
2.views.py에서 상속
여기서 정의한 클래스를 views.py에서 사용합니다.
views.py
from .mixins import SuperuserRequiredMixin
class TestView(SuperuserRequiredMixin,TemplateView):
template_name = "test/home.html"
액세스 제한이 가능하면,
이런 느낌이 될 것.
도움이되면 다행입니다.
참고문헌
Reference
이 문제에 관하여(장고에서 superuser에서만 액세스 제한을 수행하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/dsduoa31/items/edebcd155243bf8c3b6e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)