python - 处理权限的正确方法是什么?

标签 python django

我添加了一个具有一个权限的新模型,现在我需要在部署代码并为涉及的新应用程序运行 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/

相关文章:

python - 确定数据类型/结构是否与数据的基本描述相同?

python - 为什么 while 循环中的缩进会产生问题?

Python 按其他列计算列值

Python - 使用 minidom 解析时理解 XML 结构

python - Django 在模型字段更新后将值转换为元组

python - 具有UTC偏移量的django DateTimeField?

c++ - 如何为指针引用定义 SWIG 类型映射?

python - Django - 在不重新启动开发服务器的情况下应用 HTML 和静态文件中的更改

Django StaticFiles APP 和 Wsgi

html - Django CSS 不工作