diadia

興味があることをやってみる。自分のメモを残しておきます。

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()