我需要为管理员创建“所有者”登录信息。假设我们有这种模型结构:
class Product(models.Model):
owner = models.ManyToManyField(User)
name = models.CharField(max_length=255)
description = models.CharField(max_length=255)
photos = models.ManyToManyField(Photo, through='ProductPhoto')
class Photo(models.Model):
order = models.IntegerField()
image = models.ImageField(upload_to='photos')
alt = models.CharField(max_length=255)
class ProductPhoto(models.Model):
photo = models.ForeignKey(Photo)
product = models.ForeignKey(Product)
我们有一个名为Owners
的群组,有些用户参与其中。 ProductPhoto
是TabularInline
管理页面上的Product
。
现在,所有者需要获得编辑权限
(主要目标) 仅产品product__in=user.products
(基本上只有他们拥有的产品)。
(次要目标) 仅产品的描述和照片
< / LI> 醇>如何使用Django的管理/权限系统执行此操作?
答案 0 :(得分:4)
这是行(或对象)级别权限。 Django为object permissions提供基本支持,但由您来实现代码。
幸运的是,有一些应用程序提供了drop-in对象级权限框架。 django-guardian
是我以前用过的。 djangopackages.com上的This page提供了一些您可以试用的内容。