我已经安装了内置的OpenERP 6.1模块crm。
因此,我现在在“Sales-> Opportunities”中有res.lead活跃且可见。
我想编辑此对象/视图以显示合作伙伴的帐单邮寄地址。
由于我想在Opporunities表单上执行此操作,因此已经存在partner_id。
复制另一个模块,我定义了我的新模块:
class crm_lead(osv.osv):
_name = _inherit = 'crm.lead'
_columns = {
'billing_address_id': fields.many2one('res.partner.address', 'Partner Billing Address', domain="[('partner_id','=',partner_id),('type','in',['invoice', 'default'])]"),
}
我将update_xml更改为:
<record model="ir.ui.view" id="crm_case_form_view_oppor">
<field name="name">Opportunity form (inherit)</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
<field name="arch" type="xml">
<data>
<separator string="Details" position="replace" />
<field name="description" position="replace">
<group colspan="2" col="4">
<separator colspan="4" string="Billing" />
<field widget="one2many_list" mode="form,tree" name="billing_address_id" colspan="4" nolabel="1" />
</group>
<group colspan="2" col="4">
<separator colspan="4" string="Details" />
<field name="description" nolabel="1" colspan="4" />
</group>
</field>
</data>
</field>
</record>
问题是相关对象显示了所有相关字段(正如我猜的那样)。特别是,它显示了partner_id和company字段,我想隐藏它们,因为它们应该默认/继承此机会(或链接的合作伙伴)。
我该如何隐藏这些字段?我不能简单地添加一堆“相关”字段,因为可能有多个帐单邮寄地址。
感谢您的帮助!
编辑:为了更清楚,机会应该只有一个选定的帐单地址,从合作伙伴的发票/默认地址中选择。它应该以内联方式显示,以便于编辑。
答案 0 :(得分:3)
对于像这样的相关字段,specify the view有几种方法。你可以使用这样的上下文:
<field
name="order_line"
colspan="4"
nolabel="1"
context="{'form_view_ref': 'module.view_id', 'tree_view_ref': 'model.view_id'}"/>
您还可以在父视图中将子记录的整个视图指定为subview,如下所示:
<!-- <=== order_line is a one2many field -->
<field name="order_line" colspan="4" nolabel="1">
<form>
<field name="qty"/>
...
</form>
<tree>
<field name="qty"/>
...
</tree>
</field>
答案 1 :(得分:0)
好的,我有点困惑,因为你在one2one字段上放了一个one2many小部件。
如果您想控制one2many字段的显示方式,请使用我在my other answer中提到的子视图或上下文方法。
如果您想控制many2one字段的显示方式,您可以使用从您选择的记录中提取字段的相关字段,但我对此表示怀疑。只读可能有效,但我认为编辑多个相关字段并能够更改所选记录是没有意义的。您可以使用存储功能将某些功能字段组合在一起,以便回写相关记录,但这似乎会让您的用户感到困惑。
答案 2 :(得分:0)
<field name="" mode="tree,form">
<!--Internal tree view for your Relation field model-->
<tree>
</tree>
<!--Internal Form view for your Relation field model-->
<form>
</form>
</field>
插件下的示例1 Click to Example 2 Click to See Example
希望这会对你有所帮助,
答案 3 :(得分:0)
现在,如果你想在你的m2o文件中提供具体细节,那么我们有一些可选的方法,你必须超过你的关系模型的def name_get
,namge看起来像:
name_get(cr, user, ids, context=None)
Returns the preferred display value (text representation) for the records with
the given ids. By default this will be the value of the name column, unless the
model implements a custom behavior. Can sometimes be seen as the inverse function
of name_search(), but it is not guaranteed to be.
Rtype : list(tuple)
Return : list of pairs (id,text_repr) for all records with the given ids.
因此,在此方法中,您可以决定要显示关系字段的字符串。 Example
这将部分解决您的问题。