Да, при выдаче запроса ORM '.search', перейдите в Python False, чтобы представить нулевые базы данных. ORM не имеет оператора 'is', поэтому вы должны запрашивать ('column', '=', False). Аналогично, когда «.browse» возвращает строки, нулевые значения базы данных преобразуются в Python False.
Я считаю, что причиной этого является то, что xmlrpc (который используется для отправки этих запросов на ваш сервер OpenERP) не имеет возможности представлять значения None/null в своей конфигурации «из коробки». Xmlrpc можно настроить так, чтобы разрешать нули, но OpenERP не использует это.
Очевидный вопрос, который возникает, это то, что происходит для нулевых булевых полей, где False - допустимое значение? Основываясь на личных экспериментах: при создании строки с нулевыми логическими полями, если вы передаете Python False, база данных будет содержать false, а не null, как для других типов данных. Я не думаю, что есть какой-либо способ установить такие поля в null: он не работает, чтобы передать Python None или не устанавливать значение по умолчанию None и не передавать этот столбец вообще.
Где это задокументировано? Я не могу найти его.
Это все безумие. Добро пожаловать в Оду!
Я чувствую, что мы должны сделать футболки с надписью «Это все безумие. Добро пожаловать в Оду!» ;) –
вы можете использовать ('column', '=', None), он выглядит как столбец NULL. –