我有资料记录在数据库中,属于不同的用户。这些要么是私人访问,要么是团体的一部分,要么是所有人的免费访问。例如,我希望当前用户可以访问所有开放访问的材料(但不能修改他没有创建的那些(只读字段)。但是,他可以添加其他记录..
我有一个模型
DROITS = (
('lecture', 'all'),
('groupe', 'group')
('private', 'private data')
class Material(models.Model):
name = models.CharField(_('name'), max_length=50)
category = models.ForeignKey(Category, verbose_name=_('category'))
user = models.ForeignKey(User, default=None, blank= True, null = True)
droits_acces = models.CharField(_('access right'), max_length=150, choices = DROITS, default= 'private' )
groupe = models.ForeignKey(Group, verbose_name=_('group'), blank = True, null= True, default = None)
行政 :
class MaterialAdmin(admin.ModelAdmin):
list_display = ('name', 'description', 'user', 'created', 'droits_acces')
inlines = (MediaInline, UniteProperty2Inline, Essai_TemperatureInline)
def queryset(self, request):
qs = super(MaterialAdmin, self).queryset(request)
if request.user.is_superuser:
return qs
else:
.....
首先是关联用户和材料。我们该怎么办?使用类材料,我只过滤字段相关的材料
如果材料不属于当前用户,我必须将“Essai_TemperatureInline”只读权限