JSONField (original) (raw)

JSON Example:

NullableJSONModel

    values = [
        {'a': 'b', 'c': 14},
        {
            'a': 'b',
            'c': 14,
            'd': None,
            'e': '"quoted"',
        },
        {'x': 'y'},
    ]

NullableJSONModel.objects.filter(value__a__isnull=True).values() <QuerySet [{'id': 3, 'value': {'x': 'y'}, 'value_custom': None}]>

NullableJSONModel.objects.filter(value__a__isnull=False).values() <QuerySet [{'id': 1, 'value': {'a': 'b', 'c': 14}, 'value_custom': None}, {'id': 2, 'value': {'a': 'b', 'c': 14, 'd': None, 'e': '"quoted"'}, 'value_custom': None}]>

NullableJSONModel.objects.filter(value__d__isnull=False).values() <QuerySet []>

NullableJSONModel.objects.filter(value__d__isnull=True).values() <QuerySet [{'id': 1, 'value': {'a': 'b', 'c': 14}, 'value_custom': None}, {'id': 2, 'value': {'a': 'b', 'c': 14, 'd': None, 'e': '"quoted"'}, 'value_custom': None}, {'id': 3, 'value': {'x': 'y'}, 'value_custom': None}]>

NullableJSONModel.objects.filter(value__has_key='d') <QuerySet []>