Django JSONFieldのドキュメントによると、data
構造はPythonネイティブ形式と一致しますが、クエリ時のアプローチは少し異なります。
JSONの構造がわかっている場合は、キーを関連フィールドであるかのようにフィルタリングすることもできます。
object.filter(data__animal='cat')
object.filter(data__name='tom')
アレイアクセスによる:
object.filter(data__0__animal='cat')
含む例はほぼ正しいですが、データはリストに含まれており、次のものが必要です。
object.filter(data__contains=[{'animal': 'cat'}])