我知道我可以在Django项目的管理区域中创建用户组并为其分配权限。我还可以通过从django的auth模块导入Group和Permission建模来创建组并为其分配权限。
Group
Permission
我想知道在设置项目时是否可以通过任何方式创建组并为其分配权限。因此,如果我有用户类型,则为 Admin , Developer , Tester 和 Project Manager 。他们基本上是具有不同权限级别的用户组。我没有自定义User模型,只能按分配给它们的组进行区分。因此,有没有一种方法可以创建这些组并向其分配所需的权限,例如在我运行时为admin创建权限时python manage.py migrate?
User
python manage.py migrate
您可以定义一个post_migrate信号来创建所需实例User和Group模型实例(如果尚不存在)。
post_migrate
当您使用中创建应用程序时python manage.py startapp <app_name>,它将AppConfig在apps.py文件中创建一个类。
python manage.py startapp <app_name>
AppConfig
您可以在AppConfig类定义中指定要调用的信号。说信号被呼叫了populate_models。在这种情况下,将AppConfig修改为如下所示:
populate_models
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