Получить последние обновленные данные из поля one2many

Как я могу получить данные последних обновленных данных из поля one2many. Я использовал следующий код, но он не работает, когда я создаю новую запись, и для существующих записей она работает нормально.

Код

class location(models.Model):
_name = 'weather.location'

name = fields.Char(string="City Name",required=True)
weather_ids = fields.One2many('weather.weather', 
                'location_id', string="Weather Details", domain=([('forecast','=',False)]))
temperature = fields.Float(string='Temperature', compute='weather_details')
def weather_details(self):
    for record in self:
        temperature_list = []
        for line in record.weather_ids:
            temperature_list.append(line.temperature)
        self.temperature = record.temperature_list[-1]

Когда я создал новый, он выдает следующую ошибку:

self.temperature = temperature_list [-1]
IndexError: список индексов вне диапазона

Кто-нибудь может помочь, как получить последние обновленные данные из one2many fiel

1 ответ

Переменная Temperature_list является массивом, вы можете получить доступ к последней позиции с помощью температурного списка [:-1], поэтому, если вы измените строку:

self.temperature=temperature_list[-1]  

от

self.temperature=temperature_list[:-1] 

Должно работать

Другие вопросы по тегам