Как я могу исключить некоторые нулевые значения, используя queryset django?

У меня есть набор запросов B, и я хочу исключить нулевые значения, поэтому я сделал это :

B.exclude(mycolumn__in[0, {"total": 0}])

Потому что иногда я могу иметь JSON поле с нулевыми значениями. Но я заметил, что у меня могут быть и такие случаи :

{"total": 0, "2": 0}])

или

{"total": 0, "5": 0}])

и так как все значения равны null, я хотел бы исключить и их. Как я могу это сделать, используя exclude() ?

Большое спасибо!

На самом деле существует оператор django SQL для исключения нулевых значений.

B.filter(mycolumn__isnull=False)

Для фильтрации JSON-поля Django SQL, чтобы исключить любой JSON-дикт, который имеет общий ключ внешнего уровня со значением 0, используйте

B.exclude(mycolumn__total=0)

Итак, чтобы отфильтровать нулевые поля Json и поля Json со значением 0 под общим ключом, используйте:

B.exclude(my_column__isnull=True, my_column__total=0)

Вот документация Django по запросу JSONFields для справки.

https://docs.djangoproject.com/en/3.2/topics/db/queries/#querying-jsonfield

Счастливого кодинга!

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