odoo通过定义设置(res.config.settings或者其他继承模型)字段的基础创建以及进行一些操作(个人总结,不喜勿喷)

1.通过设置控制模块的安装;

2.通过设置控制用户组权限;

3.通过设置控制某些参数的值;

注意:尽量不要继承res.config.settings,这个会导致其他继承这个模型的模型在进行设置操作时保存会报错,找不到我们加的这个字段,可以去继承其他继承过res.config.settings的模型;

1.写法:module_rc_product = fields.Boolean(u"产品唯一性校验")

格式:module_模块名称,一般用boolean来设置字段类型

如果找不到这个模块,不会报错,会跳到odoo的一个提示页面;

可以通过set方法(一般是修改这个字段的值后,会调用这个方法),get方法(一般是跳到设置页面后,可以通过get来设置这个字段的值)来随着字段值的变化而去改变一些东西

2.写法:

先设置用户组:

<record id="group_manage_pallets_num" model="res.groups">

<field name="name">托盘数设置</field>

<field name="category_id" ref="base.group_user"/>

</record>

添加设置字段:

group_manage_pallets_num = fields.Selection([

(0, "无托盘"),

(1, "有托盘")

], string="托盘设置", implied_group='odoo_odk.group_manage_pallets_num')

implied_group指的是我们写的用户组,只有这个设置字段的值为1时,就是被选中时,这个权限组才会生效;

设置页面上xml写法:

<field name="group_manage_pallets_num" widget="radio"/>

widget的类型有,radio(单选),upgrade_boolean的是升级模块,一般会提示是企业版,

如果不写widget,会根据字段来显示,如果是boolean,则会显示成勾选框;如果是float或者integer等,则是输入框;

给我们需要控制的字段上加上这个权限组:

<field name="pallets_num" groups="odoo_odk.group_manage_pallets_num"/>

这个时候如果我们选择有托盘,即值为1,就代表权限组生效,这个字段pallets_num会在页面上显示出来;

3.写法:类似于我们普通模型字段的定义;

web_m2x_options_create = fields.Boolean(u'创建功能')

通过set或者get控制其他参数:

# many2one的创建功能设置的显示值的获取get

def get_default_web_m2x_options_create(self, fields):

config = self.env['ir.config_parameter'].search([('key', '=', 'web_m2x_options.create')], limit=1)

if config and config.value == 'True':

is_create = True

else:

is_create = False

return {

'web_m2x_options_create': is_create

}

这是get方法(get_default_字段名),代表当进入设置页面时,会执行这个方法,找到系统参数中的某个参数,根据这个参数值,return值给我们设置的这个设置字段web_m2x_options_create,注意赋值的字段类型,这样进入设置页面后,页面上这个设置字段显示的就是我们get方法取的值,注意:对于这种普通字段,如果能有根据其他值来控制设置字段的显示,一定要写get方法,否则,这个设置字段永远显示的是初始化的样子,即没有进行任何操作,get方法主要用来控制设置字段的显示;

 

# many2one的创建功能设置的显示值的设置set

def set_default_web_m2x_options_create(self):

self.env['ir.config_parameter'].set_param(

'web_m2x_options.create', str(self.web_m2x_options_create))

这是set方法(set_default_字段名),代表当设置字段进行改变后执行的方法,类似于write(),会根据设置字段的值去改变系统参数的值,一般是通过设置字段的改变来去改变其他我们需要改变的值;使用这个方法,可以修改系统参数或者其他模型的字段值

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值