シリアライザが何をしているのか理解している間に、私はジャンゴレストフレームワークを学んでいます。シリアライザとモデルserialzerクラスの場合あなたのどちらかが私に具体的な現実世界の使用例を教えてください。Django Rest Framework - シリアライザクラスとモデルシリアライザクラスを使用する具体的な例
はい、私はDRFのウェブサイト上のチュートリアルを数回行っていると私はまだあいまい
シリアライザが何をしているのか理解している間に、私はジャンゴレストフレームワークを学んでいます。シリアライザとモデルserialzerクラスの場合あなたのどちらかが私に具体的な現実世界の使用例を教えてください。Django Rest Framework - シリアライザクラスとモデルシリアライザクラスを使用する具体的な例
はい、私はDRFのウェブサイト上のチュートリアルを数回行っていると私はまだあいまい
を経験していますがあり優れた例がDRF tutorial上にあり、それが答えでカバーするにはあまりにも多くを取るだろうが、私は希望いくつかの点を作る。
まず、DRFのドキュメントは説明する:
当社SnippetSerializerクラスには、スニペットモデルに記載された情報の多くを複製しています。私たちのコードをもっと簡潔にすることができればいいと思います。
DjangoがFormクラスとModelFormクラスの両方を提供するのと同じように、RESTフレームワークにはSerializerクラスとModelSerializerクラスの両方が含まれています。
スニペットモデルは、この例で使用されるモデルの名前です。したがって、ドキュメントでは、モデルから同じフィールドを再度入力してSerializer
に入力するのではなく、ModelForm
と同じようにをショートカットとして使用することができます。Form
です。
しかし、あなたのコメントで指摘したように、これは本質的に「ok、なぜシノニムシリアライザクラスですか?」という質問を残します。
モデルを持ち、関連するデータ(通常はJSONであるが、これに限定されない)をシリアライズ/デシリアライズする必要がある大部分のケースでは、ModelSerializer
が行く方法です。追加のフィールド、関連するシリアライザ、または任意のロジックが必要な場合でも、ModelSerializer
を簡単に微調整することができます。個人的には、ModelSerializer
がモデルに関連するデータには適していないという私のプロジェクトで私が出会ったことはありません。
ただし、モデルに準拠していないデータを処理する必要がある場合があります。そのようなデータはDRFビューにPOSTされ、Serializer
がそれらを処理します。そのようなケースは、例えば、メールメッセージを送信したり、セロリタスクをセットアップしたり、セッションにデータを追加したり、モデルをまったく含まない他の多くのものにすることができます。
これは私が言っていることを参照してください、これは実際には非常に貴重です。ありがとうございます –
@amazingCarrotSoup私はこれが助けてうれしいです。 – Wtower
私の質問を変えたいと思いますが、モデルシリアライザを使用すべきではない現実世界の例がありますか?シリアライザクラスは?私たちのデータベースから発信されていないデータをシリアル化するときは? –