MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

Django REST Framework メモ :: Serializer設定からくるエラー症状ごとの原因(と思われるもの)例:インスタンスあるのにnull が返る など

Django

Django

はじめに

Django REST Framework で出力したときにエラーじゃないけど、うまくSerializerが通ってないっぽいことがあったのでメモ

  • Django2
  • Python3.5.2

症状:null が返る

  • 解決案:Serializer経由のモデルのネストを1回だけ(計2層)にする。
    モデルを2個以上ネストさせる(つまり層としては3層以上)と、ネスト1個めのインスタンスの返り値がnullになった。(追記:3層でも行けることのほうが多いらしいこのときは何故だったんだろう・・・)

  • many=Trueを忘れてたらつける
    ○○serializer(インスタンス,many=True)のmany=Trueが抜けると、返るインスタンスが複数ある場合(例:ある記事へのコメントインスタンスが複数ある場合など)はこれもnullが返ってしまう。

  • .dataを忘れてたらつける
    ○○serializer(インスタンス,many=True).data の".data"を忘れるとエラーになる どんなエラーだったか忘れた。

症状:[] が返る

これは正常な可能性があります。ようするに関連づけられたインスタンが1個もないよという場合。この場合はmodels.pyのインスタンスの状況をadminで調べると◯