我添加了一个具有一个权限的新模型,现在我需要在部署代码并为涉及的新应用程序运行 syncdb 后,将该权限添加到生产机器上的几个用户。我还没有找到正确的方法来做到这一点。授权文档提到了 User.user_permissions.add(permission),但从未告诉我“权限”是什么或获得权限的最佳方式。
最佳答案
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
来让他们成为 super 用户。
关于python - 处理权限的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603595/