django實現自定義許可權控制
阿新 • • 發佈:2019-02-16
自定義許可權
django自定義許可權使用permissions這個meta屬性,例如:修改model後同步資料庫資料#encoding = utf-8 from django.db import models # Create your models here. # rights control class tofmodel(models.Model): class Meta: permissions = ( ("riskview_all", "Can see all the pages"), ("riskview_dev", "Can see dev page"), ("riskview_transfer", "Can see transfer page"), )
python manage.py makemigrations
python manage.py migrate
許可權修飾器
permission_required(perm, login_url=None, raise_exception=False) :檢查使用者是否具有特定的許可權,可以自定義使用者不具有要求許可權是重定向到登陸頁面,以及是否丟擲異常等等@login_required(login_url='/login/') @permission_required('tof.riskview_all',raise_exception=True) def index(request): return render(request,'index.html')
第一個修飾器可以讓使用者進行登入,登入後若使用者未有許可權,則丟擲異常,進入一個403.html的頁面,使用者可以自定義這個頁面並放置在templates資料夾下即可,若沒有,則會出現系統預設403的報錯文字 Just like the has_perm() method, permission names take the form "<app label>.<permission
codename>" (i.e. polls.can_vote for a permission on a model in the polls application).