AttributeError: объект 'bool' не имеет атрибута 'split' в python odoo

Мне нужно получить введенное имя в модели odoo и получить первые буквы каждого слова в верхнем регистре. Пример: MTA Flushing из этого мне нужно создать MF в качестве вывода. Я пробовал. Но выдает ошибку «AttributeError: объект bool не имеет атрибута «разделить»». Вот мой код

my_name     = self.env['my_details'].search([('id', '=',so_id )]).name
    my_d_name   = "".join([i[0].upper() for i in depot_name.split()])

Любая идея решить эту проблему???


person Ridma Gimhani    schedule 27.11.2017    source источник


Ответы (2)


i[0] имеет значение False для некоторого значения в вашей базе данных.

Это должно работать:

my_d_name = "".join([i[0].upper() for i in depot_name.split() if i[0]])
person Lucas    schedule 27.11.2017

Спасибо за помощь. В моем случае сначала нужно преобразовать искомое имя в строку, а затем мы можем применить код без ошибок.

my_name     = self.env['my_details'].search([('id', '=',so_id )]).name
str_name    = str(my_name)
my_d_name   = "".join([i[0].upper() for i in my_name.split()])
person Ridma Gimhani    schedule 28.11.2017