Exception Type : MultipleObjectsReturnedが出るとき
エラー内容
djangoを使っていて以下のエラーが出た。このエラーに対してなんのことか分からなかったのでメモしておく。
Exception Type: MultipleObjectsReturned Exception Value: get() returned more than one Post -- it returned 4!
エラー箇所のコード
post_obj = Post.objects.get(user=request.user)
エラー対処
参考情報:https://stackoverflow.com/questions/32172934/how-to-catch-the-multipleobjectsreturned-error-in-django
djangoのget()は、データオブジェクトをひとつだけ取得する。データオブジェクトが該当しない場合はエラーが出る。またデータオブジェクトが一つではなく複数の場合もエラーが出る。
https://docs.djangoproject.com/ja/2.1/topics/db/queries/#retrieving-a-single-object-with-get
以下のように修正した。
post_obj = Post.objects.filter(user=request.user).order_by("-id").first()