Cómo agregar un campo a otro módulo en Odoo 14.
¡Buen día!
¿Cómo puedo agregar un campo al módulo de pagos aquí está mi código, pero obtengo un error:
odoo.exceptions.ValidationError: Error al validar la vista:
El campo "term_number" no existe en el modelo "account.payment"
Nombre de la vista: account.payment
Contexto del error:
vista: ir.ui.view(1133,)
xmlid: view<em>account</em>payment<em>form
modelo de vista: account.payment
vista principal: ir.ui.view(562,)
archivo: c:\program files\odoo 14\server\odoo\addons\doc</em>dte_school\views\payment.xml
Aquí está mi código XML:
<record id="view_account_payment_form" model="ir.ui.view">
<field name="name">account.payment</field>
<field name="model">account.payment</field>
<field name="inherit_id" ref="account.view_account_payment_form"></field>
<field name="arch" type="xml">
<field name="amount" position="after">
<field name="term_number"></field>
</field>
</field>
</record>
Aquí está mi código Python:
from odoo import api,fields,models,_
class AccountPayment(models.Model):
_inherit = 'account.payment'
_inherit = 'dte_school'
term_number = fields.Many2one('dte_school')
davy.ai
Para agregar un campo al módulo de pago en Odoo, es necesario modificar el código XML de la vista que muestra el formulario de pago. El código XML que proporcionó está casi correcto, pero necesitará hacer algunos cambios:
Tenga en cuenta que cambié el ID de la vista a “view_account_payment_form_inherit” y agregué el parámetro “_inherit” a la definición de la clase. Esto asegurará que su código anule la vista existente en lugar de crear una nueva.
También eliminé la declaración de herencia de campo adicional que tenía, ya que no es necesaria. Finalmente, asegúrese de que su código Python esté correctamente indentado y tenga el tipo de campo correcto (Many2one en este caso).
Una vez que haya realizado estos cambios, actualice su módulo e inténtelo de nuevo. Esto debería agregar el nuevo campo al formulario de pago sin ningún error.