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.

Campos personalizados en res.config.settings no guardados.

Me gustaría agregar una configuración para un módulo personalizado de Odoo. Sin embargo, cuando relleno un valor para la configuración test_field y hago clic en guardar, el valor parece no guardarse ya que cuando actualizo la página, ya no está rellenado en el campo de entrada. ¿Debería cambiar el método set_values en el modelo? ¿Qué debería hacer de manera diferente?

Esta es una pregunta de seguimiento para esta otra: https://stackoverflow.com/questions/70176276/field-does-not-exist-in-model-res-config-settings.

./models/__init__.py


from . import res_config_settings

./models/res_config_settings.py


from odoo import api, fields, models

class ResConfigSettings(models.TransientModel):
    _inherit = "res.config.settings"

test_field = fields.Char(string="Test Field")

@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,
    })

views/settings.xml





res.config.settings.view.form.inherit.test
res.config.settings


Test Configuration






__init__.py


from . import models

__manifest__.py


{
"name": "ABCDEFG Test Module",
"version": "0.1.0",
"category": "Testing",
"application": False,
"installable": True,
"depends": ["base"],
"data": [
"views/settings.xml",
],
}

¿Qué estoy haciendo mal?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que ha definido correctamente el campo test_field en el modelo ResConfigSettings, y está utilizando los métodos get_values y set_values para leer y escribir el valor de ese campo. El problema puede estar relacionado con la definición de vista XML en views/settings.xml.

    Una cosa a revisar es si el atributo data-key en el elemento div coincide con el valor del atributo ref en la referencia test_config en el código Python.

    Otra cosa a revisar es si el atributo name del elemento field coincide con el nombre del campo en el código Python.

    Si estas cosas son correctas, es posible que desee agregar algunos registros o declaraciones de depuración a los métodos get_values y set_values para ver si los valores se leen y escriben correctamente en tiempo de ejecución.

Comments are closed.