我知道我可以创建用户组并从 django 项目的管理区域为他们分配权限。我还可以通过从 django 的 auth 模块导入 Group
和 Permission
模型来创建一个组并为其分配权限。
我想知道在设置项目时是否有任何方法可以创建组并为其分配权限。因此,如果我有以下用户类型,Admin、Developer、Tester 和Project Manager。它们基本上是具有不同权限级别的用户组。我没有自定义 User
模型,只能通过分配给他们的组来区分。那么有没有一种方法可以创建这些组并为它们分配所需的权限,就像在我运行 python manage.py migrate
时为管理员创建权限一样?
最佳答案
你可以定义一个 post_migrate
创建所需的信号 User
和 Group
模型实例(如果它们尚不存在)。
当您使用 python manage.py startapp <app_name>
创建应用程序时, 它创建一个 AppConfig
apps.py 文件中的类。
您可以在 AppConfig
中指定调用哪个信号类定义。假设信号称为 populate_models
.在这种情况下,将 AppConfig 修改为如下所示:
from django.apps import AppConfig
from django.db.models.signals import post_migrate
class AppConfig(AppConfig):
name = 'app'
def ready(self):
from .signals import populate_models
post_migrate.connect(populate_models, sender=self)
并在 signals.py 中定义 populate_models
功能。
def populate_models(sender, **kwargs):
from django.contrib.auth.models import User
from django.contrib.auth.models import group
# create groups
# assign permissions to groups
# create users
关于python - 如何在 Django 项目设置期间创建组和分配权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42743825/