在odoo中存储一个int
Storing an int in odoo
我想知道他们是否是一种在 odoo 中的某处存储整数而无需创建新对象的方法。我想保留一个数字,以便仅显示 ID 高于该数字的合作伙伴。但是我不想在 res.partner 的每条记录中都添加一个字段。我怎么能有一个数字我可以访问我的 xml 而不是 res.partner 的字段?
对于这种情况,您可以使用模型 ir.config_parameter
。习惯方法 set_param() 和 get_param().
该参数将他的值保存为字符串,因此对于我的示例,它将被解析为整数。 xml ID 将是 my_module.test_parameter
.
但是在视图中使用它有点棘手。一种方法是在模型的搜索视图中使用上下文 "signal" 的过滤器:
<filter name="my_filter" string="My Filter" context="{'search_by_parameter':1}" />
有了它,您可以覆盖模型的 search() 以在激活过滤器时使用参数:
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
context = dict(context or {})
if 'search_by_parameter' in context:
try:
value = int(self.pool.get('ir.config_parameter').get_param(cr, uid, 'my_module.test_parameter'))
except:
value = 0
args.append(('id', '>', value))
return super(my_model, self).search(cr, uid, args, offset, limit, order, context, count)
我想知道他们是否是一种在 odoo 中的某处存储整数而无需创建新对象的方法。我想保留一个数字,以便仅显示 ID 高于该数字的合作伙伴。但是我不想在 res.partner 的每条记录中都添加一个字段。我怎么能有一个数字我可以访问我的 xml 而不是 res.partner 的字段?
对于这种情况,您可以使用模型 ir.config_parameter
。习惯方法 set_param() 和 get_param().
该参数将他的值保存为字符串,因此对于我的示例,它将被解析为整数。 xml ID 将是 my_module.test_parameter
.
但是在视图中使用它有点棘手。一种方法是在模型的搜索视图中使用上下文 "signal" 的过滤器:
<filter name="my_filter" string="My Filter" context="{'search_by_parameter':1}" />
有了它,您可以覆盖模型的 search() 以在激活过滤器时使用参数:
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
context = dict(context or {})
if 'search_by_parameter' in context:
try:
value = int(self.pool.get('ir.config_parameter').get_param(cr, uid, 'my_module.test_parameter'))
except:
value = 0
args.append(('id', '>', value))
return super(my_model, self).search(cr, uid, args, offset, limit, order, context, count)