Help us understand the problem. What is going on with this article?

【Django】TypeError: Object of type QuerySet is not JSON serializable

はじめに

以下のようにBlogモデルへの検索結果をそのままJsonResponseで返却しようとしたところ、表題のようなエラーが出た。エラー内容は「検索結果がQuerySetだとJSON形式に変換できないよ」というもの。
このエラーへの対処方法を備忘録として残しておく。

views.py
blog_list = Blog.objects.filter(user=request.user)
ret = { "blog_list": blog_list }
return JsonResponse(ret)

対処方法

serializersを用いてjson型に変換する。

views.py
from django.core import serializers
...
blog_list = serializers.serialize("json", Blog.objects.filter(user=request.user))
ret = { "blog_list": blog_list }
return JsonResponse(ret)

おわりに

以下を参考。
https://stackoverflow.com/questions/41992889/queryset-is-not-json-serializable-django/41992944

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away