Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
14922 Lượt xem

I'm trying to include an if-else setup for my ir.config_parameter. But I can't think of any way to have it done in the xml with the use of <record id="_____" model="ir.config_parameter">.

So is there a way to have it done in Python and create the following ir.config_parameter just like when you install the module? 

Or maybe there is a way to use if-else in xml when creating ir.config_parameter?

Thanks!

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

In odoo v12, we have field parameter named config_parameter="" in res.config.settings model. 

do_not_use = fields.Boolean(
config_parameter='model_name.do_not_use
)

In other versions, we can use set_param method in res.config.settings and use that to create a new record.


Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi Jean: You can create a system parameter from python like this:

self.env['ir.config_parameter'].sudo().set_param('<name of system parameter>', <value of system parameter>)
Ảnh đại diện
Huỷ bỏ
Tác giả

Hi! Using this creates the ir.config_parameter when installing the module? Thanks!

You will need to define a post_init_hook in the manifest file of the module and write this code inside it to do this during installation. Here is an example from the Sales module.

Manifest file: https://github.com/odoo/odoo/blob/12.0/addons/sale_management/__manifest__.py#L58

Function definition: https://github.com/odoo/odoo/blob/12.0/addons/sale_management/__init__.py#L18

Tác giả

Will look into it! Thank you so much, Paresh!

Câu trả lời hay nhất

Yes, you can add the default value from python itself like this : 

self.env['ir.config_parameter'].sudo().get_param('your_module.your_field', default='[]')

The "[]" is best to use if you are using many2many fields. You can set your own default based on value you need.

Best regards

Altela (altelasoftware.com)

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 7 24
2498
1
thg 6 24
4992
1
thg 10 23
10679
1
thg 10 23
98
1
thg 4 24
2189