国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 14:22:06
字體:
來源:轉載
供稿:網友

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_syncdbfrom django.contrib.contenttypes.models import ContentTypefrom django.contrib.auth import models as auth_modelsfrom django.contrib.auth.models import Permission# custom user related permissionsdef 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

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


注:相關教程知識閱讀請移步到python教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 禹州市| 利津县| 禹城市| 兴安县| 龙里县| 堆龙德庆县| 定安县| 镇江市| 南溪县| 耒阳市| 漳浦县| 綦江县| 金昌市| 临城县| 余姚市| 康乐县| 墨竹工卡县| 镇原县| 山丹县| 南阳市| 班玛县| 日照市| 怀仁县| 九龙县| 泾源县| 玛沁县| 武威市| 白玉县| 江陵县| 西和县| 海丰县| 阳东县| 龙井市| 宝清县| 瑞安市| 定陶县| 弥勒县| 抚宁县| 偏关县| 安阳县| 昭通市|