私はかなり新しくdjango restフレームワークです。パーミッションをシリアライザで確認する、Django rest framework、
私は組織のメンバーであり、あるグループのメンバーであるユーザーを持っています。
class SomeModel:
organization = models.ForeignKey(Organization)
name = models.CharField()
ユーザーのみcreate
/update
SomeModel
、自身の組織のために、彼はまたcreate
/update
あらゆる組織にとって彼ができる「コーディネーター」のグループの場合は次のことができます。 は、私たちがモデルを考えてみましょう。
現在、私のアプローチは、データがすでに検証されているので、.create()
と.update()
方法で、シリアライザでこれらの条件をチェックすることですし、私はそこにPermissionDenied
エラーを上げています。しかし、これは「正しい方法」ではないと感じています。私はカスタムの権限クラスを作ろうとしましたが、データは検証されません。なぜなら、権限クラスはシリアライザの前にチェックされているからです。 これにどのようにアプローチすればよいですか?
ご迷惑をおかけして申し訳ございません。私の母国語ではありません。 ありがとう!
EDIT: 例: 要求データがあるようなもの:
payload = {'organization': 1, 'name': 'Name'}
したがって、ユーザーは、組織1からであるか、彼は、コーディネータのアクセスが許可されるべきだとSomeModel
が
カスタムアクセス許可クラスを使用する場合、ユーザーが作成/更新する権限を持っていない場合、なぜデータをさらに検証する必要がありますか? –
作成中のモデルの組織が存在するかどうかを確認する必要があります。 –
私は問題を理解するのに役立つかもしれない例を加えました... –