2016-07-05 58 views
0

我正在學習Django教程。在它的官方文檔中,例如提供瞭如下代碼:困惑於Django的客戶權限

class Task(models.Model): 
    ... 
    class Meta: 
     permissions = (
      ("view_task", "Can see available tasks"), 
      ("change_task_status", "Can change the status of tasks"), 
      ("close_task", "Can remove a task by setting its status as closed"), 
     ) 

這樣,三種不同的類型與任務相關的模型自定義權限的創建。如果用戶想要獲得訪問此模型的權限,那麼用戶如何獲得訪問任務模型的權限?我需要這三個權限進入用戶模型嗎?

+0

接下來發生了什麼?你設法把它整理出來嗎? – e4c5

回答

1

這在django文檔custom permissions中有解釋。

您的代碼負責檢查這些權限時 一個用戶試圖訪問由 應用程序提供的功能的價值(查看任務,改變任務的狀態,收盤 任務。)持續的上面的例子,下面的檢查,如果用戶 可以查看任務:

user.has_perm('app.view_task')

如何對這些權限授予或如何將這些權限檢查是完全取決於你。例如,您可以選擇通過監聽信號來註冊這些權限。或者您可以登錄到管理員區域並手動分配權限,或者您可以使用小腳本爲許多用戶授予權限等等。