class Library(models.model):
book = JSONField(default=[], blank=True, null=True)
Возможная структура 'book': {'title': '', 'no_of_pages': '', 'author_name': '', 'color': '', edition: ''}
Я пытаюсь написать запрос django, который возвращает только те записи, в которых в книге есть хотя бы один ключ с непустым значением (т. Е. Либо title , либо no_of_pages или author_name или цвет или издание имеет какое-то значение)
одно из возможных решений этого типа что-то вроде:
Author.objects.filter(
~Q(book__title='') |
~Q(book__no_of_pages='') |
~Q(book__author_name='') |
~Q(book__color='') |
~Q(book__edition='')
)
есть ли лучшеспособ сделать это?Может случиться так, что в будущем книга может иметь несколько дополнительных ключей, например publisher или available
Как выполнить этот фильтр, не упоминая конкретные ключиполе (просто проверьте хотя бы один ключ с некоторым значением)?или любой более короткий метод, чтобы написать этот запрос со всеми упомянутыми ключами?