我理解基本的用户资料.我知道身份验证,登录,创建帐户等.但现在我想处理组和权限.
django组/权限的文档在哪里?这不是它:http://docs.djangoproject.com/en/dev/topics/auth/
我想使用基于权限的系统来限制我的Django应用程序中的某些操作.这些操作不需要与特定模型相关(例如,访问应用程序中的部分,搜索......),因此我无法直接使用库存权限框架,因为Permission模型需要引用已安装的内容类型.
我可以编写自己的权限模型,但后来我必须重写Django权限中包含的所有好东西,例如:
permission_required装饰.User.has_perm 和相关的用户方法.perms模板变量.我已经检查了一些像django-authority和django-guardian这样的应用程序,但它们似乎通过允许每个对象的权限提供更多耦合到模型系统的权限.
有没有办法重新使用这个框架,而不必定义任何模型(除了User和Group)的项目?
我在我的Django模型中使用自定义权限,如下所示:
class T21Turma(models.Model):
class Meta:
permissions = (("can_view_boletim", "Can view boletim"),
("can_view_mensalidades", "Can view mensalidades"),)
Run Code Online (Sandbox Code Playgroud)
问题是,当我向列表添加权限auth_permission时,当我运行syncdb时,它不会被添加到表中.我究竟做错了什么.如果它有任何区别我在南方使用数据库迁移.
我最近开始使用django管理一个使用twisted.web多年来有机增长的大型现有应用程序.我开始尝试使用django,它是自动管理界面,我对结果非常满意.
对我来说似乎缺少的一件事是能够为用户提供对数据的只读访问权限.例如,我们有一个角色,允许人们登录并创建采购订单.他们还需要能够查看,但不能编辑其他客户端或产品数据.
如何在django admin中创建"查看"权限,以便用户可以修改某些表的数据,同时只读取其他表的访问权限?
更新:Django Admin似乎给了我CRUD界面的CUD.如何获取具有关联权限和组的只读部分?
更新2010年2月12日:Django 1.2现在将包含只读.详情如下.
我猜我回答了自己的问题.将内容下移到下面的真实答案.
我需要为用户组实现用户权限(非常类似于facebook组).例如,每个组可以拥有具有以下权限的成员:can_post,can_delete,can_ban等.当然,一个用户可以是许多组的成员,并且组可以拥有许多具有不同权限的不同用户.我需要什么型号才能使用此功能?
我是使用Django + Django Rest-framework进行开发的新手,我正在开发一个提供REST Api访问的项目.我想知道为给定的ApiView或Viewset的每个动作分配不同的权限是什么最佳做法.
假设我定义了一些权限类,例如'IsAdmin','IsRole1','IsRole2',...,我想为单个操作授予不同的权限(例如,具有Role1的用户可以创建或检索用户, Role2可以更新,只有管理员可以删除).
如何构建基于类的视图,以便为"创建","列表","检索","更新","删除"操作分配权限类?我试图这样做有一个类可以重用于具有相同权限模式的不同表.
也许我只是淹死在一寸水里,谢谢你的回复.
如何检入模板用户是否属于某个组?
有可能在view生成template但是如果我想检查这base.html是一个扩展模板(它没有它自己的视图功能)怎么办?
我的所有模板都扩展了,base.html所以在每个模板中检查它都不好view.
在base.html包含上部杆,它应包含在其中的按钮根据group登录用户是(客户,销售商).
在我的base.html是:
{% if user.is_authenticated %}
Run Code Online (Sandbox Code Playgroud)
这是不够的,因为我必须采取不同的方式对用户Customers和用户采取不同的行动Sellers.
所以我想要的是:
{% if user.in_group('Customers') %}
<p>Customer</p>
{% endif %}
{% if user.in_group('Sellers') %}
<p>Seller</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud) 我通过管理界面向用户添加了一些权限.
由于某些原因,所有烫发功能都失败了,例如
>>> user.get_all_permissions()
set([])
Run Code Online (Sandbox Code Playgroud)
但直接访问表,工作:
>>> user.user_permissions.all()
(list of permissions as expected)
Run Code Online (Sandbox Code Playgroud)
什么可以导致"get_all_permissions"(和所有的perm函数,如has_perm())失败?
谢谢
django django-admin django-authentication django-permissions
从管理员我看到您可以为用户或用户组分配权限,以允许:允许添加,更改或删除模型中的数据.
这很好,但我还需要允许用户或用户组访问或不访问一组视图.我在我的网站上有某种类型的服务,所以我想让一些用户访问某些服务(页面/视图)而不是其他用户.
那么如何允许某些用户/用户组访问某些视图?谢谢!
python django django-authentication django-permissions django-login
django ×10
python ×5
django-admin ×3
django-apps ×1
django-login ×1
django-south ×1
usergroups ×1