django许可组

时间:2012-07-04 18:00:21

标签: python django permissions

我正在通过扩展框架提供的User模型来创建自己的自定义User模型。我还创建了几个模型类,并包含以下权限:

class Meta:
    permissions = (("update_values", "update values"),)

当我执行syncdb时,我能够看到应该填充的所有权限。我的问题是,有没有办法将这些权限与组关联,同时syncdb正在发生?现在我所看到的所有例子都只是我们通过代码来做,但我想要自动生成的一些组。谢谢你的帮助!

[编辑]

我正在尝试通过创建一个名为initial_data.json的文件来加载初始数据,如下所示:

[
        {
        "model": "django.contrib.auth.models.Group",
        "pk": 1,
        "fields": {
            "name": "uni_admin"
        }
    },
        {
        "model": "django.contrib.auth.models.Group",
        "pk": 2,
        "fields": {
            "name": "uni_poweruser"
        }
    },
        {
        "model": "django.contrib.auth.models.Group",
        "pk": 3,
        "fields": {
            "name": "uni_viewer"
        }
    }
]

当我运行python manage.py loaddata app/fixtures/initial_data.json时,我会继续DeserializationError: Invalid model identifier: 'django.contrib.auth.models.Group' ...但这不是正确的型号吗?

2 个答案:

答案 0 :(得分:2)

相同的pyaml版本

- model: auth.Group
  pk: 1
  fields:
    name: Admin Group

auth.Group是正确的名称和错误的主要原因。

答案 1 :(得分:1)

你可以使用fixtures或自定义SQL(cf https://docs.djangoproject.com/en/dev/howto/initial-data/)来做,但是如果你使用South来管理你的架构更新,那么“数据迁移”是恕我直言的一个更清洁的解决方案(如果你是不要使用南方,你应该 - 它真的让生活变得更容易了。)