es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , ,

Answer

  1. Avatar for 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 archivo models/__init__.py está importando correctamente su módulo res_config_settings.

    Además, asegúrese de que su archivo __manifest__.py incluya todas sus dependencias y archivos de datos requeridos, incluyendo su archivo views/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 atributo test_field esté correctamente definido en la clase ResConfigSettings.

    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.

Comments are closed.