2012-04-08 87 views
7

Django的1.4許可/認證文檔提供了編程方式創建自定義權限下面的代碼片段:何時以編程方式創建自定義Django權限?

編輯:(我想使用這個對於那些必然聯繫到一個特定的模型類的權限,但更普遍的權限跨越多個類型。)

from django.contrib.auth.models import Group, Permission 
from django.contrib.contenttypes.models import ContentType 

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') 
permission = Permission.objects.create(codename='can_publish', 
             name='Can Publish Posts', 
             content_type=content_type) 

Source

我的問題是其中應該放置此代碼。顯然這些應該只創建一次,但我不想在shell中執行。它似乎應該存儲在某個文件中。 (爲了便於說明)

回答

2

通常只需使用permissions元屬性將所需的權限添加到相應的模型類就足夠了。

這是從official documentation

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

對不起,我應該澄清 - 這是全球性的權限,或者沒有鏈接到一個特定的模型類的權限。 – 2012-04-08 14:58:50

+2

我明白了。如果將它存儲在夾具中會怎樣? – aruseni 2012-04-08 15:03:46

+0

我對Python和Django都很新,但Google的快速搜索表明燈具可能是一個很好的解決方案。我會四處打聽,謝謝! – 2012-04-08 15:06:35

相關問題