Как найти все объекты как объекты в списке в django?

<
class SomeModel(models.Model):
    data = models.JSONField(null=False)
< < < <

Вы можете сделать что-то вроде этого, если измените ваши json-данные на словарь:

data = {
    'one': ['1', '2', '3'],
    'two': ['2', '3'],
    'three': ['1', '3']}
    # you'll probably want to loop through all your different id's

for k, v in data.items():
    if '2' in v:
        # do something
        # maybe make an empty dict or list above
        # and add your key and value (or the entire object) to it.
        print('Yes')
    else:
        # do something else
        print('no')

Надеюсь, это поможет.

Несколько полезных ссылок:

Проверьте, есть ли значение в списке

Итерация над словарями в циклах for

использовать jsonb запрос (читать документ Django)

result =SomeModel.objects.filter(data__one__contains='2',data__two__contains='2')[:]

Всегда старайтесь хранить данные таким образом, чтобы извлечение их из базы данных обходилось дешевле, конечно, это не всегда рекомендуется. Возможно, в некоторых случаях запись важнее чтения

Если вы не знаете, сколько ключей находится в данных, и хотите проверить их все, вы выбрали плохой метод! Лучше сохранить данные другим способом

Вернуться на верх