Django REST framework を勉強しています。
views.py
のviewsets.ModelViewset
と
serializers.py
のserializers.ModelSerializer
には、
それぞれcreate()
やupdate()
という同じ名前の組み込み関数がありますが、
どのような違いがあるのでしょうか?
create()
なら、どちらもPOSTリクエスト送ったときに発火する関数で、
例えば、DBにデータ保存する前に何か処理を実行したいときに使える、
みたいな(ふわっとした)認識でいるのですが、viewsetのcreate()
とserializerのcreate()
をどのように使い分けたらいいでしょうか?
よろしくお願いします。
(viewとserializerの役割の違いは理解しています)
追記
実行タイミングについてはこの質問が参考になりました。
viewsetsのcreateとupdate()はリクエストが有ったときに実行される
serializerのcreate()とupdate()はserializer.save()が呼ばれたときに実行される
そしてcreate()
に関して言えば実装を見る感じ、ModelViewSetのcreate()
からperform_create()
が呼ばれて、perform_create()
からserializer.save()
が呼ばれています。
したがって、serializerのcreate()
よりもviewsetのcreate()
のほうが先に呼ばれているというところまではわかったのですが、肝心の**「どのように使い分けるのか」という部分がまだわからない**です。
どなたかご存じないでしょうか...?
あなたの回答
tips
プレビュー