Djangoのupdate_or_createでTypeError: int() argument must be a string, a bytes-like object or a number, not

今回はDjangoのupdate_or_createで「TypeError: int() argument must be a string, a bytes-like object or a number, not 〇〇(〇〇はモデル名)」のエラーが起きたときの原因と対処法について提案いたします。



Djangoのupdate_or_createでTypeError: int() argument must be a string, a bytes-like object or a number, not

例えば、次のようなupdate_or_create文を書いたとします。

このとき、SampleModel.objects.update_or_create はtest_typeという外部キーを持ち、SampleModel.objects.update_or_createのdefaultsに指定したtest_typeは外部キーのモデルだとします。

上記の場合update_or_createのupdateの場合うまくいくのですが、createだとうまくいきません。
なぜなら、test_typeに指定しているのはint型の数値ではなくモデルだからです。

上記の場合は下記のように直しましょう。

終わりに

今回はDjangoのupdate_or_createで「TypeError: int() argument must be a string, a bytes-like object or a number, not 〇〇(〇〇はモデル名)」のエラーが起きたときの原因と対処法について提案いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ