2016-12-19 2 views
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メソッドをオーバーライドして手動で権限を割り当てますか?このような共通の行動を管理する標準的なメカニズムはありませんか?

+1

perform_create()にアクセス権を割り当てることができます。 'serializer.save()'メソッドは、保存されたインスタンスを返します。あなたは –

+0

を受け入れるでしょう。 –

答えて

1

ViewSet()のperform_create()メソッドでアクセス権を割り当てることができます。

関連する問題