はじめに
以下のように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