Ton*_*ony 7 django permissions bootstrapping usergroups
我正在构建一个应用程序,假定其工作流程存在某些组和权限.例如,"成员"可以登录应用程序并查看和编辑他们的个人数据,但无法看到通常会在同一屏幕上显示的注释."员工"可以查看这些笔记并创建或编辑自己的笔记,但只有"会员管理员"才能删除或编辑任何人的笔记.
我的问题是引导这个应用程序的数据.我可以为组创建JSON fixture数据,但是我必须对PK进行硬编码,这看起来像是不好的做法(如果我想使用的第三方应用程序做同样的事情并且存在冲突会怎样?)更大问题是权限 - 我必须将PK添加到权限,而权限反过来又会有PK到他们的内容类型.
我已经读过使用post_syncdb钩子以更加编程的方式添加初始数据,我希望这将有助于我解决硬编码的PK问题.但我想知道这是否是这个问题的最佳解决方案,或者我是否"滥用"Django组和权限概念,在这里,应该做其他事情,比如创建新模型或只是放置标志(如" is_member_manager")在我的用户个人资料模型等.
通常创建一个init使用管理命令命名的应用程序initialize,我将引导应用程序的所有代码放在那里。这允许您:
init从已安装的应用程序中删除该应用程序配置后(首次安装)或者
Group.objects.all().exists()?)(或两者)
我发现这个解决方案非常易于维护,并且功能强大,适合任何情况。
post_syncdb(post_migrate在 djang 1.7 中)不是每次迁移所调用的解决方案
如果您只需要加载数据和/或创建记录(即组/管理员...),恕我直言,最好的解决方案是使用数据迁移](https://docs.djangoproject.com/en/1.7/topics/migrations/#数据迁移)
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |