Enligt Django JSONField-dokumenten förklarar det att data
struktur matchar det ursprungliga python-formatet, med ett lite annorlunda tillvägagångssätt när du frågar.
Om du känner till strukturen för JSON kan du också filtrera på nycklar som om de vore relaterade fält:
object.filter(data__animal='cat')
object.filter(data__name='tom')
Genom arrayåtkomst:
object.filter(data__0__animal='cat')
Ditt innehåller exempel är nästan korrekt, men dina data finns i en lista och kräver:
object.filter(data__contains=[{'animal': 'cat'}])