5

管理者の「所有者」ログインを作成する必要があります。このモデル構造があるとします。

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ます。TabularInlineProduct

今、所有者は編集する許可が必要です

  1. (主な目標) 製品のみproduct__in=user.products(つまり、基本的には、それらが所有する製品のみ)。

  2. (二次目標) 商品の説明写真のみ

Djangoの管理/許可システムでこれを行うにはどうすればよいですか?

4

1 に答える 1

4

これは、行 (またはオブジェクト) レベルの権限です。Django はオブジェクト権限の基本的なサポートを提供しますが、コードの実装はユーザー次第です。

幸いなことに、ドロップイン オブジェクト レベルのアクセス許可フレームワークを提供するアプリがいくつかあります。django-guardian以前使っていたものです。djangopackages.com のこのページでは、試してみることができるいくつかの機能を提供しています。

于 2012-06-21T13:07:23.357 に答える