Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
3 Odpovědi
5888 Zobrazení

Generally in object programming there is something called as Global variables which can be accessed without any object and throughout the program. Now with respect to Odoo, i want to know how and where to define a field which then can be accessed in and from all the other modules.

I am thinking defining a field in base module does the thing but i'm not sure of it. Please answer, if anyone knows how to do this or can this even be done?

Avatar
Zrušit
Nejlepší odpověď

Yes, you are right: fot that purpose you can apply the class 'BaseModel' from the Odoo core (the file 'models.py').

All other Odoo classes (sale.order, product.product, so any) inherit that class. For example, here the columns '_name', '_order', '_sequence' are defined.

You can define your own as well like _my_global_variable = 100. Then, you may use it in any class as self._my_global_variable. Besides, you will be able to re-define it privately for a definite model.

In many cases, however, it is better to use the model 'ir.config.parameter', and apply to it. It will let you change the value through the interface. For an example have a look at the module 'sale', the file 'res_config_settings.py'. Here you can see how to save and retrieve the global settings. In such a way, for instance, odoo base url is kept.

Avatar
Zrušit
Autor

Thanks for the info. +1

Nejlepší odpověď

Hi,

you can check this class, you can define field over here, this can be accessible everywhere.

 _inherit = 'res.config.settings'

res[field_name] = self.env['ir.config_parameter'].get_param(key_name, '')

Regards,

Silvestar

Avatar
Zrušit
Autor

Thank you for the answer but I have a doubt. What's key_name and the other param inside get_param?

This is github link i have done it in version 10.

i have created this module for website functionality and check models file where i added fields.

and i accessing those fields in the controller .

https://github.com/jsilvestar/odoo/blob/10.0/website_smart_street/controllers/main.py#L19-L20

Regards,

Silvestar

Related Posts Odpovědi Zobrazení Aktivita
3
úno 24
14273
3
kvě 25
1551
5
kvě 25
9365
1
dub 25
1165
3
zář 24
13998