тот же) имеется ввиду в плане оптимальности
В данном случае разницы нет, но когда сложное условие, то без вариантов через Q
Скорее так - нет разницы с точки зрения бд, с точки зрения питона первый вариант тяжелее, но не на столько чтобы об этом думать
Может быть разный. Точно не помню, там какие-то приколы есть с фильтрацией по списку с None, и с фильтрацией one-to-many
Спасибо) кстати в копилку багов тоже кое-что расскажу, может когда-нибудь пригодится, т.к. похожая проблема была) в джанге гис есть методы фильтрации для точек и полигонов и среди прчоего там есть методы contained (для поиска точек, которые содержатся в полигоне) и intersect (для поиска пересечений, подходит и в качестве того же, что делает contained), так вот они вроде как делают одно и то же, только вот давали разный результат, оказалось причина была во внутрянке sqlной (psql функциях, которые вызываются этими методами), а именно в том что contained более старый и вместо того чтобы использовать четкие границы полигона оптимизирует поиск таким образом, что область поиска чутка меняется (там вроде оптимизация идет таким образом что фигура делится на квадраты или тип того, сейчас уже не вспомню), а intersect работает четко по границам фигуры, вдруг когда-нибудь столкнешься с такой проблемой - потратишь меньше времени на поиск решения)
Спасибо, буду знать)
Обсуждают сегодня