リカーの海にちょっと漬かってくる

リカーの海にちょっと漬かってくる

2024年07月30日
XML
カテゴリ: Python




rest_frameworkのSerializerってコンストラクタの引数にmany=Trueを与えると、自動的に当初指定したSerializerをchildとするListSerializerが出来上がってくる仕様なのだが、このmany=Trueを渡した時の挙動が不審で困る

引数としてinstanceを与えず、dataに各要素がそれぞれ単独のSerializerに渡せばis_valid()となるようなelmの配列[elm0...elmN]みたいなのを渡すと、これもまたis_valid()となるし、save()すると配列の各要素についてserializer.save()したように処理が行われる

また、instanceとしてSerializerのobjとして適当なやつを[obj1...objN]のような配列を渡し、serializer.to_representation()としたら各objをシリアライズしたモノの配列が返ってくる

いずれも期待通り

なのに両方同時に与えると、is_valid()がなぜか予定外のExceptionを発して失敗する

many=Trueを指定しない場合、save()するとinstanceとして渡したobjをdataとして渡したis_valid()なデータでupdate()する仕様で、many=Trueの場合、このsave()自体は未サポートでNotImplementedErrorが放出される仕様なのだが、そうなっていることを確認するテストを書こうとしたら問題のコード地点まで到達できないよ!w

is_valid()で検証される引数dataの内容はinstanceを同時に指定しない(is_valid()が正常に完了出来てTrueとなる)場合と同じ値なので、is_valid()は何の問題もなく通過してほしいのだがなぁ……(´・ω・`)





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2024年07月30日 20時57分37秒
コメントを書く
[Python] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

カレンダー

カテゴリ

カテゴリ未分類

(0)

お散歩部

(613)

誰得記録

(828)

DQ

(1213)

自作果実酒

(99)

焼酎類感想

(144)

その他酒類感想

(44)

旬食材

(24)

ドヤ記録

(73)

PC関連

(235)

雑記

(920)

歯歯歯

(159)

Python

(82)

Web

(39)

コメント新着

蒼太郎@ はじめまして。 はじめまして、まるるrさん。 果実酒につ…

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: