django1 8認證系統 2

2021-07-04 06:04:07 字數 1909 閱讀 1138

注意:本文翻譯自django1.8的官方文件

django提供了乙個簡單的許可權管理系統.它提供方法給指定的使用者和組分配許可權

django的admin site使用了許可權管理,然而你也可以你的**中使用.

django的admit site使用了permissions以下功能:

myuser.groups = [group_list]

myuser.groups.add(group, group, ...)

myuser.groups.remove(group, group, ...)

myuser.groups.clear()

myuser.user_permissions = [permission_list]

myuser.user_permissions.add(permission, permission, ...)

myuser.user_permissions.remove(permission, permission, ...)

myuser.user_permissions.clear()

default permissions

groups

django.contrib.auth.models.group模型是乙個通用的給使用者分類的方法,這樣你就能分配許可權,或其他標籤給使用者.乙個使用者可以分配給任意乙個或多個組.

使用者能自動化獲得所屬組的許可權.例如,如果組site editors有can_edit_home_page許可權,該組下面的使用者就擁有這個許可權.

除了許可權,組還是乙個方便的途徑來給使用者分類,給使用者貼上標籤,或者擴充套件功能.例如,你可以建立乙個組叫』特殊使用者』,並且寫**,給特殊使用者訪問會員專區的許可權,或者傳送會員專屬郵件訊息.

programmatically creating permissions

from django.contrib.auth.models import group, permission

from django.contrib.contenttypes.models import contenttype

content_type = contenttype.objects.get_for_model(blogpost)

permission = permission.objects.create(codename='can_publish',

name='can publish posts',

content_type=content_type

)通過user的user_permissions屬性可以分配許可權,或者通過group的permissions屬性

permission caching

改變乙個user物件的許可權後,立即檢視它的許可權,會發現沒有改變,這是因為有快取.重新建立乙個user物件,再檢視許可權,才能看到改變.例如:

from django.contrib.auth.models import permisson, user

from django.shortcuts import get_object_or_404

defuser_gains_perms

(request, user_id):

user = get_object_or_404(user, pk=user_id)

# 任何許可權檢查都會快取到當前的許可權集合

permission = permission.objects.get(codename='change_bar')

user.user_permissions.add(permission)

# 檢查快取許可權集合

user = get_object_or_404(user, pk=user_id)

# 快取許可權重新從資料庫裡更新

Django1 8教程 安裝Django

你是不是對django的學習感到迷茫?是不是對網上零星的教程感到絕望?是不是苦於沒有可以迅速上手的例項而發愁?如果你同我一樣有這些感受,那麼 django.by.example 這本書將是你指路的明燈。本書基於django1.8 python3.4的環境,裡面包含了個人部落格 社交 購物平台等具有實...

Django 1 8安裝使用

1 使用pip安裝django,pip是什麼,如何安裝?自行放狗搜 pip install django 1.9 2 建立專案 django admin startproject djangosite 3 執行專案 cd djangosite python manage.py runserver 1...

Django 1 8 新手入門

內容 預告 學習views,url 安裝django linux windows 安裝python 安裝python虛擬環境 安裝django 1.8.13 安裝資料庫 預設自帶sqlite,該資料庫無需配置。postgresql,mysql,oracle 配置 見21章 新建專案 專案是djang...