我使用Django管理工具,我有非常简单的模型。我希望限制对特定用户或特定组的特定密码的访问。我如何为访问“Yes / No /从不”设置3个条件,当用户获得Yes +他的组No时,他可以访问,但是当Yes+永远不能访问时,他就可以访问了。以及如何使它与django-管理-工具权限系统一起工作。
from django.db import models
from passwords.objects.labels.models import Label
class Password(models.Model):
class Meta:
db_table = 'passwords'
name = models.CharField(max_length=32)
username = models.CharField(max_length=32)
password = models.CharField(max_length=32)
labels = models.ManyToManyField(Label)
def __unicode__(self):
return self.name
发布于 2012-05-24 20:25:46
无条件地,django只支持类级权限(换句话说,表上的权限)。
虽然对对象级(行级)权限有支持,但是django并没有随它一起实现:
对象级权限 添加了用于在每个对象级别指定权限的基础。虽然核心中没有这方面的实现,但自定义身份验证后端可以提供此实现,并且将由django.contrib.auth.models.User使用。有关更多信息,请参见身份验证文档。
因此,像django-监护人这样的第三方应用程序能够实现这一功能。
发布于 2012-05-24 20:41:15
由于您正在使用管理,所以可以在has_add_permission
、has_change_permission
和has_delete_permission
方法上覆盖ModelAdmin
。但是,如果不知道您的“是/否/从不”权限是如何附加到用户/组的,我就无法进一步帮助您。
更新
如果您想让它保持愚蠢的简单性,最好的方法就是简单地创建一个组,例如"PasswordAccess“。然后,将您想要的任何用户分配给该组,并且只将Password
的默认添加、更改和删除权限分配给该组。
不需要其他任何东西。添加到该组中的任何用户都将自动继承Password
的权限,任何其他用户都不会拥有这些权限,因此甚至不会在管理中看到它。
https://stackoverflow.com/questions/10744638
复制相似问题