Их можно заменить методом search
. Предложение WHERE
будет преобразовано в домен поиска , ORDER
BY будет заменено параметром порядка (order='read_date desc'
), а предложение LIMIT
будет доступно в качестве параметра (limit='1'
).
Например, второй запрос выбора можно заменить на:
record = self.env['dailycharges'].search([('billstatus', '=', record['id']), ('status', '=', 'B')], order='read_date DESC', limit=1)
# read_date = record.read_date
Изменить:
Вы можете использовать search_read
метод, позволяющий указать поля для чтения.
Odoo предоставляет ярлык search_read()
, который, как следует из названия, эквивалентен search () , за которым следует read () , но избегает необходимости выполнять два запрашивает и сохраняет идентификаторы.
Его аргументы аналогичны аргументам search () , но также могут принимать список fields
(например, read () , если этот список не предоставлен, будут извлечены все поля совпадающих записей)
Пример:
self.env['dailycharges'].search_read([('billstatus', '=', record['id']), ('status', '=', 'B')], ['read_date'], order='read_date DESC', limit=1)
[{'id': ?, 'read_date': ?}]