Как найти все объекты как объекты в списке в 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')
Надеюсь, это поможет.
Несколько полезных ссылок:
использовать jsonb запрос (читать документ Django)
result =SomeModel.objects.filter(data__one__contains='2',data__two__contains='2')[:]
Всегда старайтесь хранить данные таким образом, чтобы извлечение их из базы данных обходилось дешевле, конечно, это не всегда рекомендуется. Возможно, в некоторых случаях запись важнее чтения
Если вы не знаете, сколько ключей находится в данных, и хотите проверить их все, вы выбрали плохой метод! Лучше сохранить данные другим способом