【发布时间】:2026-02-02 17:50:01
【问题描述】:
我目前正在学习 python/django 作为我自己的教程,我已经这样做了:
- 创建用户 --> 好的
- 已创建登录用户 --> 好的
- 创建一个名为“Article”的新模型,将标题和内容作为属性 --> ok
- 创建几个“文章”实例 --> 好的
- 我在webapp的根目录显示所有文章-->
- 最后一步是:为了操作权限,只显示一些文章,具体取决于哪个用户登录了权限。就像用户 A:那么只显示具有奇数 id 的文章(这没有任何意义,但它是为了学习)
手动做'permission by instance'似乎很复杂吧?
干杯
【问题讨论】:
-
没那么复杂,您只需要检查当前登录用户是否具有访问该特定视图的权限即可。
user.has_perm('myapp.can_view_odd_ids')。对于你自己的教程,我会分享给你reference,没有答案,你可以自己尝试。不要忘记创建权限实例,(可以使用 shell 或作为数据迁移)......如果你想看看我是怎么做的,请告诉我(当然在你尝试之后),然后我将它创建为一个新的回答。 祝您的教程一切顺利。祝你好运:) -
太棒了!我会努力的,让你知道 :) 干杯
-
嗨,我计划执行以下步骤: * 创建 2 个权限 can_view_odd_ids 和 can_view_even_ids * 将新权限保存在数据库中(我必须创建新模型吗?) * 创建新属性 'permission ' 在用户上 * 在用户实例上随机设置权限 * 在视图中检查用户是否具有 user.has(myapp.can_view_odd_ids) 的权限并给他一个好的列表。你怎么看?这有意义吗?
-
如果您使用
django.controb.auth,则无需创建新模型,只需使用auth.Permission作为模型即可。无需为User添加属性,默认的auth.User已经有来自PermissionMixin的inherit。您可以根据自己的需要分配不同用户的权限,(随机听起来很奇怪,但没关系,..) -
好的,太好了!随机大声笑我的意思是我只需要其中两个用户并且每个用户都有不同的权限!谢谢!
标签: django django-models