Добавление нового поля в вариант продукта Odoo

Я пытаюсь добавить новое поле в модель product.product.

На данный момент я сделал следующее:

Добавьте новое поле в следующую модель (Из Настройки> Структура базы данных> Модели):

  1. product.product

со следующими деталями:

  • Имя: x_product_cost
  • Ярлык поля: Стоимость продукта
  • Тип поля: плавающее

а остальное оставьте по умолчанию.

Проблема в том, что я не могу показать это в форме. Это единственный код, который генерируется, когда я пытался редактировать форму:

  • Имя представления: product.product.form
  • Объект: product.product
  • Унаследованное представление: product.template.common.form

    Вариант продукта lst_price

Я не могу использовать модель product.template, поскольку она наследуется от product.product. Мне что-то здесь не хватает?

PS: я пытаюсь временно исправить ошибку assign-different-cost-on-product-variant, как указано здесь.

https://github.com/odoo/odoo/issues/1198

Кто-нибудь может мне с этим помочь?


person Jeremy    schedule 06.01.2015    source источник
comment
Лучше делать это из нового модуля. Вы не увидите в представлении формы унаследованные поля, если вы выполняете представление и наследуете оттуда, вы можете поместить поле куда хотите, не делайте этого из odoo   -  person dccdany    schedule 20.01.2015
comment
@DanielCrocco Как лучше всего это сделать? Стоит ли делать это из исходного кода?   -  person Jeremy    schedule 26.01.2015
comment
Нет, просто добавьте новый модуль, наследующий объект и добавляющий поле.   -  person dccdany    schedule 26.01.2015


Ответы (1)


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

Для этого вам нужно будет унаследовать от моделей в файлах python, чтобы расширить их, и вам, безусловно, придется изменить представления, чтобы отображались ваши настраиваемые поля.

Для справки о том, как расширять модели, создавать настраиваемые модули и представления, вам следует обратиться к документации Odoo, которую вы можете найти здесь.

В качестве дополнительного примечания на случай, если вы не знали, но это новый API, появившийся в версии 8 Odoo, если вы можете его использовать, это намного проще и намного приятнее.

person NicolasWebDev    schedule 07.02.2015