django 如何创建 Group 和设置相应的 Permission

2015-04-30 11:30:57 +08:00
 dsdshcym
学校期中 PJ 要做一个选课系统,有学生、老师、教务员三个用户组。

想通过 django 的 Group 给三个组分别设置权限,但是尝试了一个早上依然无果,不知道有什么资料吗?(官方 Doc 对这块的资料比较少,是比较少用这个功能么?)
4447 次点击
所在节点    Django
10 条回复
maemual
2015-04-30 11:34:30 +08:00
以『django group permission』怎么 google 到一堆资料呢。。。。
dsdshcym
2015-04-30 11:44:57 +08:00
@maemual 是啊,但是我想在代码里设置好

现在找到的最接近我想法的是这篇 http://garmoncheg.blogspot.com/2012/06/users-groups-and-their-permissions-in.html

但是我不知道该把设置的代码放在哪里,放在 models.py 里会报错, views.py 里好像又没作用。
dsdshcym
2015-04-30 11:51:33 +08:00
https://gist.github.com/85f9922de550e3df2190

这是我用来设定 group 和 permission 的代码,放在 models.py 里会有 Duplicate entry 'Student Group' for key 'name' 错误
maemual
2015-04-30 12:01:50 +08:00
@dsdshcym 没有所谓的设置,你创建 group,然后 save,这是数据库存储,在数据库里有几张表,记录 group 和 permission 的
maemual
2015-04-30 12:02:39 +08:00
@dsdshcym Duplicate entry 'Student Group' for key 'name'
这明显就是说数据库表里面的条目已经存在了嘛。
dsdshcym
2015-04-30 12:09:51 +08:00
@maemual 所以,如果部署到服务器上之后所有 group 都要重新创建一次吗?

感觉这样不科学。。。
lds56
2015-05-01 09:35:25 +08:00
出现 Duplicate 说明你要 truncate 掉原表,推荐 truncate 不要 drop
lds56
2015-05-01 09:58:26 +08:00
@dsdshcym 不然你的 group 哪里来,从石头里蹦出来么🐒。部署跟测试两码事。说来 models.py 应该就写表的定义而不是对表的操作,像你说的 group 这种表应该写在 init 部分,不过要注意的是每次测试时需要重新 truncate。
lds56
2015-05-01 10:16:13 +08:00
@dsdshcym 再补充一句。事实上这些表应该预设好,然后再通过单独的方式导入,而不是通过你的 runserver 命令。你可以在 admin 界面加,也可以用 dumpdata 或者 loaddata 命令。
lds56
2015-05-01 10:18:04 +08:00
另外 PJ 是什么👻?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/187480

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX