2009-03-02 91 views
3

我添加了一個具有一個權限的新模型,現在我需要在部署代碼併爲涉及的新應用程序運行syncdb後將該權限添加到生產計算機上的一些用戶。我還沒有找到正確的方法來做到這一點。 auth文件提到User.user_permissions.add(權限),但永遠不會告訴我'權限'是什麼或獲得它的最佳方式。什麼是解決權限的正確方法?

回答

4

Permission(住在django.contrib.auth.models)是一個數據庫對象。您將可以使用Permission.objects.all()查看所有人。它們是通過每個型號的後同步信號自動創建的(並且您還可以定義您自己的)as the docs mention

要爲用戶分配權限,首先必須獲取Permission對象(使用Permission.objects.get(*args)),然後如上所述將其添加到用戶User.user_permissions.add(permission)

另外,如果你可以做到這一點,更簡單的方法就是使用Django管理站點。在每個用戶的詳細信息頁面中,有一個與權限有關的部分。我猜你沒有在管理員之外使用這些權限,所以這是他們唯一會影響的區域。如果您希望所有用戶擁有所有權限,則可以通過將每個用戶的is_superuser標誌設置爲True來使其成爲超級用戶。

+0

這在技術上是對我在技術上問的問題的答案,但我希望得到別的東西。我希望我錯過了像add_perm(Model,permission_name)那樣明顯的東西。 – ironfroggy 2009-03-02 20:07:54

相關問題