связанной с полем, ссылаясь на неправильное поведение многого поля

80
12

У меня этот класс:

class caracteristica_fisica(osv.osv):
_name = 'caracteristica.fisica'
_columns = {
'name': fields.char('Nombre',required=True),
}

В категории продуктов у меня есть поле many2one, ссылающееся на модель caracteristica.fisica:

class caracteristica_fisica(osv.osv):
_inherit = 'product.category'
_name = 'product.category'
_columns = {
'cf1':fields.many2one('caracteristica.fisica', 'Característica física 1')
}

Как только я выберу это поле many2one cf1, мне нужно это значение для создания записи в таблице comun.denominador:

class comun_denominador(osv.osv):
_name='comun.denominador'
_columns = {
'categ_id' : fields.many2one('product.category','Categoría de Producto', select=True, ondelete='cascade'),
'cf1_cm': fields.related('categ_id', 'cf1', string="Característica física 1", type='char', store=True, select=True),
}

Он генерирует запись в comun.denominador, но в этом формате:

caracteristica.fisica(4,)

и мне нужно, чтобы показать настоящее имя

Как я могу это исправить?

спросил(а) 2021-01-27T17:11:45+03:00 8 месяцев, 3 недели назад
1
Решение
120

Попробуйте следующее:

class comun_denominador(osv.osv):
_name='comun.denominador'
_columns = {
'categ_id' : fields.many2one('product.category','Categoría de Producto', select=True, ondelete='cascade'),
'cf1_cm': fields.related('categ_id', 'cf1', string="Característica física 1", type='many2one', relation="caracteristica.fisica", store=True, select=True),
}

Связанная область, к которой вы пытаетесь получить доступ, не относится к типу "char", а поле "many2one".

Заметка:

Еще одна вещь, если ваша цель иметь связанную область только для информационной цели, не делайте ее "store = True" и делайте ее только для чтения.

ответил(а) 2021-01-27T17:11:45+03:00 8 месяцев, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема