Я не уверен, что правильно истолковал ваш вопрос.
api.one () устарела начиная с V9 из-за распространенного неправильного толкования разработчиками, согласно документации ORM API V11
Преемником api.one () является использование api.multi (), в методе, при необходимости, вызову sure_one.
Если ваша модель ожидает только Одна запись в определенных наборах записей, сделайте это
@api.multi
@api.depends('your_temp_field')
def _my_method(self):
self.ensure_one() # self is a recordsets, if it contains more than 1 record, error will be raised.
for record in self:
record.field1 = 'value1'
record.field2 = 'value2'
record.field3 = 'value3'
record.field4 = 'value4'
Если ваша модель ожидает более одной записи, но вам необходимо изменить определенные записи.
Вы можете просто использовать некоторые операторы if-else для целевых записей.
Если вам нужна только 0-я позиция, используйте вместо этого индексное поле .
Имейте в виду, что индекс добавляет дополнительную нагрузку на вашу базу данных с точки зрения производительности и размера, а также потому, что функция поиска / сортировки по умолчанию основана на этом.
Хороший пример вы можете найти здесь .