XML odoo 10中的域

时间:2018-11-05 15:28:05

标签: python odoo

我想在我的xml字段中使用域过滤器,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<proxy name="invoicereport_pickupECB" startOnLoad="true" transports="vfs" 
xmlns="http://ws.apache.org/ns/synapse">
<target>
    <inSequence>
        <log level="full"/>
        <property name="transport.vfs.ReplyFileName" value="Excel.csv" scope="transport"/>
    <property name="OUT_ONLY" value="true"/>
        <send>
            <endpoint>
                <address uri="file:///usr/lib/wso2/wso2ei/6.3.0/samples/data-services/resources/Testfolder"/>
            </endpoint>
        </send>
    </inSequence>
    <outSequence/>
    <faultSequence/>
</target>
<parameter name="transport.PollInterval">3</parameter>
<parameter name="transport.vfs.FileURI">vfs:sftp://abc:abc123@xx.yy.zz.aa:22/F:/Folder/new?sftpPathFromRoot=true;?vfs.passive=true</parameter>
<parameter name="transport.vfs.ActionAfterProcess">None</parameter>
<parameter name="transport.vfs.FileNamePattern">.*.csv</parameter>
<parameter name="transport.vfs.ContentType">text/plain</parameter>

但是,我不知道它是如何工作的!

这是我的字段:

domain="[('id','>=',field)]"

这是我的表单视图XML:

    responsible_partner = fields.Many2one(string="Responsible",
                                          comodel_name="res.partner",
                                          ondelete='restrict',
                                          domain="[('company_type','=','person')]",
                                          delegate=False)
    responsible_foyer = fields.Many2one(string="Foyer responsible", comodel_name="horanet.relation.foyer", copy=False)

这是我的功能:

   <field name="responsible_partner" required="True" domain="[('id','=',responsible_foyer.partner_id)]" />
   <field name="responsible_foyer" />

错误:

错误:AttributeError:对象没有属性'partner_id'

但是,我的模型中有一个字段partner_id:“ horanet.relation.foyer”。

你能跟我解释一下吗?

谢谢

1 个答案:

答案 0 :(得分:0)

您不能从XML(即点后的部分)访问子记录。您只能引用表单本身中的字段,因此必须创建一个新的相关字段以获取所需的值,然后将其作为不可见字段添加到表单中,然后可以将其用作域的一部分。

编辑:下面的详细解决方案:

您可以像这样在python代码中添加相关字段:

https

然后,您可以在XML中将此字段添加到表单视图,但保持不可见。这样一来,您就可以在自己的域中使用它,但又不会使表单视图混乱。

responsible_foyer_partner_id = fields.Many2one('res.partner', related="responsible_foyer.partner_id", string="Responsible Foyer Partner")

现在您可以在您的域中使用此字段

<field name="responsible_foyer_partner_id" invisible="1"/>