自定义字段默认值 - 填充来自同一字段的其他条目
Custom field default value - populate with other entries from same field
我在产品屏幕上创建了一个带有额外字段的自定义模块。我试图让默认值成为一个下拉列表,其中包含已提交到该字段的所有条目或创建新条目的选项(与将产品添加到 BOM 时的默认值相同)。
class product_part_detail(osv.osv):
_inherit = 'product.template'
_columns = {
'x_mfrname1': fields.char('P/N'),
}
_defaults ={
'x_mfrname1': get_default_name,
}
def get_default_name(self):
return "test"
我尝试创建一个 many2one 字段,该字段引用另一个 table 中的字段,但在尝试安装该模块时我一直收到错误消息。以下是我遇到问题的更新代码。提前致谢!
class product_part_detail(osv.osv):
_inherit = 'product.template'
_name = 'product.part.detail'
_columns = {
'x_mfrname1': fields.many2one('product.part.detail.fill', 'x_mfrname1id'),
'x_mfrname2': fields.many2one('product.part.detail.fill', 'x_mfrname1id'),
}
class product_part_detail_fill(osv.osv):
_name = 'product.part.detail.fill'
def _sel_func(self, cr, uid, context=None):
obj = self.pool.get('product.part.detail')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['x_mfrname1', 'x_mfrname2'], context)
res = [(r['x_mfrname1'], r['x_mfrname2']) for r in res]
return res
_columns = {
'x_mfrname1id': fields.one2many('product.part.detail', 'x_mfrname1', 'x_mfrname2', selection=_sel_func),
}
几件事。下拉他们之前输入的值的想法需要一个 many2one 字段。您将创建另一个模型,然后将 x_mfrname1 设为 table 的 many2one。只要用户对该 table 具有创建访问权限,他们就会在下拉菜单中获得创建选项以键入新值。
另一项,由于您使用的是 pre-8 API,您的默认方法的方法签名应为:
def get_default_name(self, cr, uid, context=None):
我在产品屏幕上创建了一个带有额外字段的自定义模块。我试图让默认值成为一个下拉列表,其中包含已提交到该字段的所有条目或创建新条目的选项(与将产品添加到 BOM 时的默认值相同)。
class product_part_detail(osv.osv):
_inherit = 'product.template'
_columns = {
'x_mfrname1': fields.char('P/N'),
}
_defaults ={
'x_mfrname1': get_default_name,
}
def get_default_name(self):
return "test"
我尝试创建一个 many2one 字段,该字段引用另一个 table 中的字段,但在尝试安装该模块时我一直收到错误消息。以下是我遇到问题的更新代码。提前致谢!
class product_part_detail(osv.osv):
_inherit = 'product.template'
_name = 'product.part.detail'
_columns = {
'x_mfrname1': fields.many2one('product.part.detail.fill', 'x_mfrname1id'),
'x_mfrname2': fields.many2one('product.part.detail.fill', 'x_mfrname1id'),
}
class product_part_detail_fill(osv.osv):
_name = 'product.part.detail.fill'
def _sel_func(self, cr, uid, context=None):
obj = self.pool.get('product.part.detail')
ids = obj.search(cr, uid, [])
res = obj.read(cr, uid, ids, ['x_mfrname1', 'x_mfrname2'], context)
res = [(r['x_mfrname1'], r['x_mfrname2']) for r in res]
return res
_columns = {
'x_mfrname1id': fields.one2many('product.part.detail', 'x_mfrname1', 'x_mfrname2', selection=_sel_func),
}
几件事。下拉他们之前输入的值的想法需要一个 many2one 字段。您将创建另一个模型,然后将 x_mfrname1 设为 table 的 many2one。只要用户对该 table 具有创建访问权限,他们就会在下拉菜单中获得创建选项以键入新值。
另一项,由于您使用的是 pre-8 API,您的默认方法的方法签名应为:
def get_default_name(self, cr, uid, context=None):