我有一个带有附加字段region
的CustomUser模型以及具有相同字段的其他模型。
如何允许CustomUser实例添加/删除/查看其他模型的实例(授予所有权限)仅具有相同的区域值?
修改
使用vivek soundrapandi建议的自定义管理器,我可以
class ShopManager(models.Manager):
def get_query_set(self):
return super(ShopManager, self).get_query_set().filter(region=?)
但是如何按当前连接用户的区域过滤商店实例?
这仍然允许CustomUser使用默认的Manager修改其他区域的Shop实例,对吗?
使用Django权限系统无法做到这一点?
由于
答案 0 :(得分:2)
使用django-guardian(实际就是这样,但是想要更多字符)
答案 1 :(得分:0)
尝试使用模型管理器使用您自己的功能。 click here for docs explanation
行,
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
class Entry(models.Model):
blog = models.ForeignKey(Blog)
name = models.CharField(max_length=100)
Entry.objects.filter(blog__name__exact='Beatles Blog')
此示例使用名为“Beatles Blog'”的博客检索所有Entry对象。因此,您的模型管理器应该对您要引用的所有其他类执行相同的操作,并将它们组合在一起以生成单个结果集。如果我理解您的问题是正确的,那么这应该是解决方案。