Django - 创建 "hard-coded" 组和权限

Django - Create "hard-coded" groups and permissions

我需要定义一些在模型和视图中使用的权限和组。我知道如何使用权限来做到这一点(在某些模型的 "Meta" 中定义它们),但我不清楚如何使用组来做到这一点。也许正确的做法不是使用 Django 的 Auth 中提供的组,而是创建一些新模型来处理这些 "constant" 组。

我也尝试将这些组创建为 "initial data" (https://docs.djangoproject.com/en/1.7/howto/initial-data/),但这个解决方案对我来说似乎不是很干净。

无法在代码中创建硬编码组(不修改 Django 源代码),因为组存储在 auth.group table 数据库中。让您的小组加入此 table 的可能方法是:

  1. 初始数据,正如您已经完成的那样(推荐,因为它是为此而设计的)
  2. 创建包含组的数据迁移
  3. 在有点讨厌的代码中添加它

    从django.contrib.auth.models导入组
    p, 创建 = Group.objects.get_or_create(名称 = 'Administrators')