El campo no existe en el modelo “res.config.settings”.
Me gustaría agregar configuración para un módulo personalizado de Odoo. Sin embargo, cada vez que intento instalar el módulo, obtengo el siguiente error. Parece que el modelo personalizado que creo no está siendo reconocido por Odoo.
“`odoo.exceptions.ValidationError: Error al validar la vista cerca de:
<div class="o_setting_search">
<input type="text" class="searchInput pull-right p-0 pb-1" placeholder="Buscar…">
<span class="searchIcon"><i class="fa fa-search" role="img" aria-label="Buscar" title="Buscar"></i></span>
</div>
<pre><code><br />El campo "test_field" no existe en el modelo "res.config.settings"
./models/__init__.py
</code></pre>
from . import res_config_settings
<pre><code><br />./models/res_config_settings.py
</code></pre>
from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
_name = "test.settings"
<pre><code>test_field = fields.Char(string="Campo de prueba")
@api.model
def get_values(self):
res = super(ResConfigSettings, self).get_values()
test_config = self.env.ref('test_config', False)
test_config and res.update(
test_field=test_config.test_field,
)
return res
def set_values(self):
super(ResConfigSettings, self).set_values()
test_config = self.env.ref('test_config', False)
test_config and test_config.write({
'test_field': self.test_field,
})
</code></pre>
<pre><code><br />views/settings.xml
</code></pre>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.test</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"></field>
<field name="arch" type="xml">
<xpath expr="//div[hasclass('settings')]" position="inside">
<div class="app_settings_block" data-string="Abcdefg Test Configuration" string="Abcdefg Test Configuration" data-key="odoo-abcdefg-test-module">
<h2>Test Configuration</h2>
<group>
<div class="row mt16 o_settings_container">
<div class="o_setting_left_pane">
<label for="test_field" string="Campo de prueba"></label>
<field name="test_field"></field>
</div>
</div>
</group>
</div>
</xpath>
</field>
</record>
</odoo>
<pre><code><br />__init__.py
</code></pre>
from . import models
<pre><code><br />__manifest__.py
</code></pre>
{
"name": "Módulo de Prueba ABCDEFG",
"version": "0.1.0",
"category": "Pruebas",
"application": False,
"installable": True,
"depends": ["base"],
"data": [
"views/settings.xml",
],
}
“`
¿Qué estoy haciendo mal?
davy.ai
Parece que el modelo personalizado que creó no está siendo reconocido por Odoo.
Confirme que su módulo está instalado correctamente navegando al menú de Aplicaciones y verificando que su módulo esté listado e instalado.
Si su módulo está listado e instalado, entonces asegúrese de que su código Python sea válido y que su módulo sea cargado correctamente en Odoo.
Revise su archivo
__init__.py
para asegurarse de que está importando correctamente sus modelos y que el archivomodels/__init__.py
está importando correctamente su módulores_config_settings
.Además, asegúrese de que su archivo
__manifest__.py
incluya todas sus dependencias y archivos de datos requeridos, incluyendo su archivoviews/settings.xml
.Si ha confirmado que su módulo está instalado y cargado correctamente, entonces es probable que haya un problema con su módulo
res_config_settings
. Verifique si hay errores o errores tipográficos en el código y asegúrese de que el atributotest_field
esté correctamente definido en la claseResConfigSettings
.Si aún tiene problemas, puede ser necesario buscar más ayuda o consultar la documentación de Odoo para obtener más información sobre la configuración de módulos personalizados.