как узнать из какого класса вызывается метод другого класса в odoo - PullRequest
1 голос
/ 28 марта 2020

У меня есть 2 модели

  • 1: example.orderline
  • 2: product.product

, которые находятся в отдельных классах

есть много2one поля "stock" в example.orderline stock = fields.Many2one ("product.product", "Product")

Я хочу переопределить name_get метод модели "product.product "для поля" склад ", который я успешно выполнил:

def name_get(self):
     result = []
     for record in self:
        default_code = record.default_code
        result.append((record.id, default_code))

    return result

Но вышесказанное также относится к заказу на продажу и заказу на покупку. Как назвать метод get применяется только для модели example.orderline?

1 Ответ

1 голос
/ 28 марта 2020

Вы можете использовать атрибут context в example.orderline стороне вида модели для обработки упомянутой ситуации.

Например:

<field name="stock" context="{'display_my_name': True}"/>

Теперь проверьте значение контекста в методе name_get(). Если мы найдем наш ключ контекста, выполним наш пользовательский лог c, в противном случае вернем супер.

Например:

def name_get(self):
    if 'display_my_name' in self._context and self._context.get('display_my_name')
        result = []
        for record in self:
            default_code = record.default_code
            result.append((record.id, default_code))
        return result
    else:
        return super(YourClass, self).name_get()

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

...