Python 标签字段问题-OpenErp
我需要在OpenErp中显示字段的Python 标签字段问题-OpenErp,python,xml,view,orm,openerp,Python,Xml,View,Orm,Openerp,我需要在OpenErp中显示字段的标签或标题 我在购买模块中有一段代码,它从表单中检索公司id、合作伙伴id、日期订单等,然后以串联方式显示这些字段值: def _combinalos(self, cr, uid, ids, field_name, args, context=None): values = {} for id in ids: rec = self.browse(cr, uid, [id], context=context)[0]
标签
或标题
我在购买
模块中有一段代码,它从表单中检索公司id、合作伙伴id、日期订单等
,然后以串联方式显示这些字段值:
def _combinalos(self, cr, uid, ids, field_name, args, context=None):
values = {}
for id in ids:
rec = self.browse(cr, uid, [id], context=context)[0]
values[id] = {}
values[id] = '0%s-%s%s-%s-%s' %(rec.company_id, rec.partner_id, rec.soli_cant, rec.dest, rec.date_order)
return values
然后我调用这个函数,如下所示:
'nombre' : fields.function(_combinalos, type='char', string='Nombre', arg=('empresa','provee','soli_cant', 'dest', 'anho'), method=True),
当然还有XML视图代码:
<h1>
<label string="Request for Quotation " attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
<label string="Purchase Order " attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<field name="nombre" class="oe_inline" readonly="1" />
</h1>
作为函数字段的nombre
问题是,当我保存文档时,它应该显示这些字段的名称或标签,但只显示字段的ID或其他内容:
那么,我如何才能显示这些领域的“名称”或“标签”?它可能是xml字段调用中的某个属性吗
提前感谢。1)标签不显示可能是因为您没有为“属性指定“”,请像这样使用它
<h1>
<label string="Request for Quotation " for="nombre" attrs="{'invisible': [('state','not in',('draft','sent'))]}"/>
<label string="Purchase Order " for="nombre" attrs="{'invisible': [('state','in',('draft','sent'))]}"/>
<field name="nombre" class="oe_inline" readonly="1" />
</h1>
这将仅在编辑模式下显示标签,一旦保存记录,标签将变为不可见
2)问题是,当我保存文档时,它应该向我显示这些字段的名称或标签,但只向我显示字段的ID或其他信息:
这是因为函数中的问题\u combinalos
返回浏览对象rec.company\u id,如果您想要id
返回公司的浏览对象,您应该像返回rec.company\u id.id一样返回
def _combinalos(self, cr, uid, ids, field_name, args, context=None):
values = {}
for id in ids:
rec = self.browse(cr, uid, [id], context=context)[0]
values[id] = {}
values[id] = '0%s-%s%s-%s-%s' %(rec.company_id.id, rec.partner_id.id, rec.soli_cant, rec.dest, rec.date_order)
return values
非常感谢,非常好用,顺便问一下,有没有办法在“日期订单”中只显示“年份”部分?仅以“2013”为例,而不是“2013-09-23”?“date_order”是“date”类型字段使用rec.date_order.year了解有关datetime的更多信息,请参考。非常感谢您的帮助!顺便说一句,在“日期顺序”格式的情况下,它没有“年”属性
def _combinalos(self, cr, uid, ids, field_name, args, context=None):
values = {}
for id in ids:
rec = self.browse(cr, uid, [id], context=context)[0]
values[id] = {}
values[id] = '0%s-%s%s-%s-%s' %(rec.company_id.id, rec.partner_id.id, rec.soli_cant, rec.dest, rec.date_order)
return values