Как я могу исключить некоторые нулевые значения, используя 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
Счастливого кодинга!