从json加载django用户组

时间:2018-02-20 07:58:55

标签: django django-authentication usergroups django-permissions

我正在尝试创建多个用户组。每个组都有一组单独的权限。有没有办法从user-group使用permissions json初始化django项目。 我正在寻找像这样的方法 python manage.py loaddata user_groups.json

1 个答案:

答案 0 :(得分:1)

您可以创建Data Migration。它基本上是一种策略,您可以通过运行命令创建一个空的迁移文件:

python manage.py makemigrations --empty yourappname

然后,在此迁移文件中,您将编写一个添加初始组的Python脚本。

from django.db import migrations

def create_initial_groups(apps, schema_editor):
    Group = apps.get_model('auth', 'Group')
    # create initial groups...

class Migration(migrations.Migration):

    dependencies = [
        ('yourappname', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(create_initial_groups),
    ]

但是,我不知道这是不是一个好主意。主要是因为我们无法直接访问auth应用程序(这是创建此迁移文件的正确位置)。这意味着您必须在其中一个应用程序中创建此迁移文件,这可能会造成麻烦,例如,如果Django在迁移auth模型之前尝试运行此迁移,那么基本上Group模型不存在。我想说的是,也许您必须单独迁移应用程序以强制执行订单(或者可能不执行)。

这个策略的好处是因为当有人启动项目并迁移数据库时,初始数据将通过迁移自动应用,因此设置项目的人将非常轻松。

另一种选择是使用loaddata to provide initial data for your models