0
django-rest-frameworkを使ってdjango-guardianオブジェクトレベルのパーミッションを管理することが可能です。django-rest-frameworkでオブジェクトレベルのパーミッションを設定する
私はPOSTを実行するときに要求を行うユーザーにオブジェクトの読み取りアクセス権(module.view_object)を割り当てたいと考えています。
私のクラスベースのビュー:django-rest-framework documentationで説明したように
class ObjectList(ListCreateAPIView):
queryset = Object.objects.all()
serializer_class = ObjectSerializer
filter_backends = (DjangoObjectPermissionsFilter,)
# MyObjectPermissions inherit from DjangoObjectPermissions and just
# add the 'view_model' permission
permission_classes = (MyObjectPermissions,)
def perform_create(self, serializer):
serializer.save(owner=self.request.user)
、私はシリアライザにユーザーを渡すためにperform_create
をオーバーロードしました。
しかし、シリアライザでどのように(guardian.shortcuts.assign_permを使用して)パーミッションを割り当てるのですか?他の方法はありませんが、save
メソッドをオーバーライドして手動で権限を割り当てますか?このような共通の行動を管理する標準的なメカニズムはありませんか?
perform_create()にアクセス権を割り当てることができます。 'serializer.save()'メソッドは、保存されたインスタンスを返します。あなたは –
を受け入れるでしょう。 –