Форум сайта python.su
Приветствую, коллеги.
Есть модель с полем HStoreField.
class M(Model): hstore = HStoreField(default={})
M.objects.filter(hstore__any_key__isnull=True)
M.objects.exclude(hstore__has_key='any_key')
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
WHERE "app_m"."hstore" -> 'any_key' IS NULL
WHERE ("app_m"."hstore" -> 'any_key') IS NULL
Отредактировано int_0x80 (Апрель 5, 2015 22:06:40)
Офлайн
Делаю такой запрос:Нет, не получаем. ОРМ обрабатывает эти конструкции по разному, следовательно на выходе разный результат. С чего вы взяли, что так можно делать? Я не увидел в документации, что с HStoreField допустимы __isnull запросы.
Т.е. получаем некую альтернативу такому запросу:
Офлайн
FishHookДа, Вы правы. Но судя по документации к hstore (http://www.postgresql.org/docs/9.4/static/hstore.html), значением ключа может быть NULL (и orm тоже позволяет это сделать), а так же, если ключ не представлен, то возвращается NULL, следовательно напрашивается операция __isnull.
Нет, не получаем.
Офлайн
Офлайн