gpt4 book ai didi

python - 在服务器运行时通过 django-admin 添加自定义权限

转载 作者:太空狗 更新时间:2023-10-30 00:44:14 24 4
gpt4 key购买 nike

在django-admin中,是否可以做一个功能,让管理员可以在服务器运行时通过django-admin创建/编辑/删除某些权限?

在django-admin中我希望可以列出权限,具有编辑创建和删除功能

在模型类的 Meta 子类中使用权限将通过迁移脚本创建自定义权限。取自 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#custom-permissions

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"),
)

这将在 auth_permission(和 django_content_type)上插入值但这需要数据库迁移,这意味着不太可能由用户(管理员)完成,而是由开发人员完成。而且我认为应用程序能够在服务器运行时管理权限、创建、编辑、删除是必要的。

那么使用 Django 实现此功能的最佳实践是什么?我是否应该继续使用 migrate 并在每个模型中创建它们,并在每次我们实现新权限或一般功能时重新加载服务器?谢谢

最佳答案

您可以将 Permission 模型注册到管理 View :

from django.contrib.auth.models import Permission
from django.contrib import admin
admin.site.register(Permission)

代码可以在它执行的任何地方,但是你的应用程序的 admin.py 可以是一个直观的地方来粘贴它。之后,你将能够查看,编辑和删除权限。

关于python - 在服务器运行时通过 django-admin 添加自定义权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32351618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com