解决权限的正确方法是什么?

时间:2009-03-02 19:18:05

标签: python django

我添加了一个具有一个权限的新模型,现在我需要在部署代码并为所涉及的新应用程序运行syncdb后,将该权限添加到生产计算机上的一些用户。我没有找到正确的方法来做到这一点。 auth文档提到User.user_permissions.add(权限),但从不告诉我'权限'是什么或获得它的最佳方式。

1 个答案:

答案 0 :(得分: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,以使其成为超级用户。