Python django权限组
通过扩展框架提供的Python django权限组,python,django,permissions,Python,Django,Permissions,通过扩展框架提供的User模型,我正在创建一个我自己定制的User模型。我还创建了几个模型类,包括如下所示的权限: class Meta: permissions = (("update_values", "update values"),) [ { "model": "django.contrib.auth.models.Group", "pk": 1, "fields": { "name": "
User
模型,我正在创建一个我自己定制的User
模型。我还创建了几个模型类,包括如下所示的权限:
class Meta:
permissions = (("update_values", "update values"),)
[
{
"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"
}
}
]
当我执行syncdb时,我能够看到所有权限都按应有的方式填充。我的问题是,在syncdb运行时,有没有办法将这些权限与组关联起来?现在我看到的所有示例都是通过代码实现的,但是有些组我希望自动生成。谢谢你的帮助
[编辑]
我试图通过创建一个名为initial_data.json
的文件来加载初始数据,如下所示:
class Meta:
permissions = (("update_values", "update values"),)
[
{
"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
时,我不断得到反序列化错误:无效的模型标识符:“django.contrib.auth.models.Group”
…但这不是正确的模型吗?您可以使用fixtures或自定义SQL(cf)来实现,但如果您使用South来管理模式更新,则需要一个“数据迁移”是一个更干净的解决方案(如果你还没有使用South,你应该——它确实让生活更轻松)。pyaml版本同样如此
- model: auth.Group
pk: 1
fields:
name: Admin Group
auth.Group是正确的名称,也是错误的主要原因。Nice,从未听说过south(我是Django的新手),但它看起来像一个很棒的工具。@kalvish:是的,South真的很棒。它就像一个版本控制系统,一开始学习这个工具需要一些额外的时间,它会带来一些额外的限制,但一旦你尝试了它,你就无法想象回到过去……只要看看你的编辑-请提出另一个问题,因为这是一个独特的pr问题。好的,我将创建一个新问题。实际上,我发现了错误,模型是
auth.Group