【问题标题】:django permission groupsdjango 权限组
【发布时间】:2012-07-04 18:00:21
【问题描述】:

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

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

当我执行 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'...但这不是正确的模型吗?

【问题讨论】:

  • 只是阅读您的编辑 - 请提出另一个问题,因为这是一个明显的问题。
  • 好的,我会创建一个新问题。
  • 其实我还是发现了错误,model是auth.Group

标签: python django permissions


【解决方案1】:

pyaml 版本相同

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

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

【讨论】:

    【解决方案2】:

    您可以使用固定装置或自定义 SQL(参见 https://docs.djangoproject.com/en/dev/howto/initial-data/)来执行此操作,但如果您使用 South 来管理您的架构更新,恕我直言,“数据迁移”是一个更清洁的解决方案(如果您不使用南方,你应该 - 它真的让生活更轻松)。

    【讨论】:

    • 不错,没听说过 south(我是 Django 新手),但它看起来是个很棒的工具。
    • @kalvish :是的,South 真的很棒。它就像一个版本控制系统,一开始需要花费一些额外的时间来学习这个工具,它会带来一些额外的限制,但是一旦你尝试过,你就无法想象回到...
    猜你喜欢
    • 2019-09-15
    • 2016-07-10
    • 2019-04-25
    • 2020-03-31
    • 2022-01-23
    • 2017-10-16
    • 2012-10-05
    • 2020-11-04
    • 2013-05-04
    相关资源
    最近更新 更多