2017-05-26 12 views
1

私は、django restフレームワークシリアライザModelSerializerから継承するシリアライザを持っています。DjangoのRFシリアライザ削除メソッドをオーバーライド

作成メソッドを上書きするには、createを再定義できます。更新メソッドを再定義するには、updateを再定義します。私はコードを見ているし、削除のための上書きするメソッドを見つけることができません。私はシリアライザでこれを行う必要がありますので、私は削除するユーザーをつかむことができます。

いずれのご意見もありがとうございます。

答えて

1

、ビューでそれを行うことができます:

class YourViewSetClass(ModelViewSet): 

    def destroy(self, request, *args, **kwargs): 
     user = request.user # deleting user 
     # you custom logiC# 
     return super(YourViewSetClass, self).destroy(request, *args, **kwargs) 

破壊する方法はとても簡単です(ただコールをinstance.deleteする())アクションが委任されていないことシリアライザに渡します。 DRFのシリアライザは、データベースモデルとの間で外部表現をネゴシエートするためのものです。ここで単にモデルを削除したいだけです。

+0

ああ、完璧、正確に私が必要なもの! –

1

私はあなたがビューレベルではあるがそれを行うことができると思う。

ModelViewsを使用している場合は、destory methodまたはperform_destroyを上書きしてビジネスロジックを追加できます。あなたがModelViewSetを使用している場合

関連する問題