91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解python如何在django中為用戶模型添加自定義權限

發布時間:2020-08-19 17:24:17 來源:腳本之家 閱讀:160 作者:代碼日志 欄目:開發技術

django自帶的認證系統能夠很好的實現如登錄、登出、創建用戶、創建超級用戶、修改密碼等復雜操作,并且實現了用戶組、組權限、用戶權限等復雜結構,使用自帶的認證系統就能幫助我們實現自定義的權限系統達到權限控制的目的。

在django中默認情況下,syncdb運行時安裝了django.contrib.auth,它會為每個模型創建默認權限,如foo.can_change,foo.can_delete和foo.can_add.要向模型添加自定義權限,可以添加類Meta:在模型下,并在其中定義權限,如此處所述

我的問題是,如果我要為用戶模型添加自定義權限,該怎么辦?像foo.can_view.我可以用下面的代碼片段來實現,

ct = ContentType.objects.get(app_label='auth', model='user')
perm = Permission.objects.create(codename='can_view', name='Can View Users', 
                 content_type=ct)
perm.save()

但是我想要一些可以很好地與syncdb一起玩的東西,例如我的自定義模型下的Meta類.我應該在類Meta中有這些:在UserProfile下,因為這是擴展用戶模型的方式.但是是否正確的方式呢?不會把它綁定到UserProfile模型?

你可以這樣做:

在Django應用的__init__.py中添加:

from django.db.models.signals import post_syncdb
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth import models as auth_models
from django.contrib.auth.models import Permission

# custom user related permissions
def add_user_permissions(sender, **kwargs):
  ct = ContentType.objects.get(app_label='auth', model='user')
  perm, created = Permission.objects.get_or_create(codename='can_view', name='Can View Users', content_type=ct)
post_syncdb.connect(add_user_permissions, sender=auth_models)

原文地址:http://stackoverflow.com/questions/7724265/how-to-add-custom-permission-to-the-user-model-in-django

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

个旧市| 嵩明县| 金堂县| 东乡县| 凌云县| 溧水县| 波密县| 禹城市| 广宗县| 榕江县| 新巴尔虎左旗| 连平县| 浮山县| 钟山县| 西吉县| 西乌珠穆沁旗| 堆龙德庆县| 绥棱县| 泰顺县| 吴江市| 古田县| 桦南县| 准格尔旗| 登封市| 来宾市| 夏津县| 全椒县| 建昌县| 施甸县| 开化县| 鹤庆县| 泰来县| 拉萨市| 大港区| 福泉市| 七台河市| 剑河县| 肃南| 原平市| 乳山市| 潮安县|