データベースに記録された資料があり、別のユーザーに属しています。これらは、プライベート アクセス、グループの一部、または全員への無料アクセスのいずれかです。たとえば、現在のユーザーがすべての資料のオープンアクセスにアクセスできるようにしたい (ただし、作成していないもの (読み取り専用フィールド) を変更することはできません)。ただし、他のレコードを追加することはできます..
私はモデルを持っています
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:
.....
最初に、ユーザーと素材を関連付けます。どうすればいいですか?クラスMaterialを使用して、材料に関連するフィールドのみをフィルタリングします
マテリアルが現在のユーザーに属していない場合は、「Essai_TemperatureInline」読み取りアクセスのみを設定する必要があります