Я пытаюсь связать поля из разных классов в Odoo. Это должно быть нечто похожее на внешний ключ.Odoo: Как связать поля друг с другом?
Это мой случай: Есть 2 класса с собственными древовидными видами.
Класс 1: opc_taginstellingen:
class opc_taginstellingen(models.Model):
_name = 'opc_taginstellingen'
Tagnaam = fields.Char(string="Tagnaam")
Unit = fields.Char(string="Unit")
Класс 2: opc_actuelewaardentags
class opc_actuelewaardentags(models.Model):
_name = 'opc_actuelewaardentags'
TagNaam = fields.Char(string="Tagnaam")
TagWaarde = fields.Integer(string="Tagwaarde")
То, что я хочу сделать сейчас:
В opc_actuelewaardentags, получить блок из opc_taginstellingen где TagNaam (opc_actuelewaardentags) == Tagnaam (opc_actuelewaardentags).
Затем я хочу также показать Единицу в древовидной структуре opc_actuelewaardentags. Но я думаю, это не проблема.
также учитывать разницу Tag н Aam и Tag N AAM.
Что я пытался до сих пор:
Я играл с реляционными полями, many2one-х, one2many и many2many. Не удалось заставить его работать еще ...
Это то, что я поместил в классе opc_actuelewaardentags, но не получилось:
Unit1 = fields.Many2one('opc_taginstellingen', string="Unit1")
Unit1 = fields.Related('Unit', type="Many2One", relation="opc_taginstellingen", string="Unit1")
Unit1 = fields.Char(related='opc_taginstellingen.Unit', store=True)
Edit: После комментария BSL Technologies', я Я изменил все на нижний регистр, так что это не проблема.
Ошибок не существует. Но значение для единицы не отображается в древовидном представлении opc_actuelewaardentags. Название имеет.
Это мой код прямо сейчас:
class opc_taginstellingen(models.Model):
_name = 'opc_taginstellingen'
tagnaam = fields.Char(string="Tagnaam")
unit = fields.Char(string="unit")
class opc_actuelewaardentags(models.Model):
_name = 'opc_actuelewaardentags'
tagnaam = fields.Char(string="Tagnaam")
opc_tag = fields.Many2one('opc_taginstellingen', string="unit")
unit = fields.Char(related='opc_tag.unit',string="unit")
Есть ли что-нибудь еще, почему это не будет работать?
спасибо. Но, к сожалению, я просто попробовал и не работал ... Не получил никаких ошибок сейчас, поле отображается в древовидном представлении, но не показывает никаких значений ... – RobbeM
Может быть, это что-то с верхний регистр U в поле «Единица»? Я уже узнал, что не должен использовать имена, чувствительные к регистру, но в любом случае ... Пробовал некоторые вещи: Единица = поля.Char (related = 'opc_tag. "Unit"', string = "Unit") ==> дал error Unit = fields.Char (related = 'opc_tag. \ "Unit \"', string = "Unit") ==> дал ошибку У вас остались какие-то другие идеи? – RobbeM
да, вы правы .... мы можем использовать единицу ... –