• odoo 由动作传递默认值给新的模型


    新的模型需要设置方法:

        @api.model
        def default_get(self, fields):
            result = super(PortalShare, self).default_get(fields)
            result['res_model'] = self._context.get('active_model')
            result['res_id'] = self._context.get('active_id')
            record = self.env[result['res_model']].browse(result['res_id'])
            result['share_link'] = record.get_base_url() + record._get_share_url(redirect=True)
            return result
    

    xml 中设置绑定关系:

            <record id="binding_reserved_rework" model="ir.actions.act_window">
                <field name="name">创建返工通知单</field>
                <field name="type">ir.actions.act_window</field>
                <field name="res_model">owl.reserved.rework</field>
                <field name="view_type">form</field>
                <field name="view_mode">tree,form</field>
                <field name="view_id" ref="owl_reserved_rework_view_form"/>
                <field name="binding_model_id" ref="stock.model_stock_quant"/>
            </record>
    

    如何在明细行中设置默认值:

        @api.model
        def default_get(self, fields):
            result = super().default_get(fields)
            logging.info('result:{}'.format(result))
            line_ids = self.rework_line_ids.create(
                dict(
                    product_id=1,
                    product_period=1,
                )
            )
    
            result['rework_line_ids'] = [(0, 0, dict(
                product_id=1,
                product_period=1,
            ))]
    
    
            return result
    

    https://www.odoo.com/pt_BR/forum/ajuda-1/question/how-to-insert-value-to-a-one2many-field-in-table-with-create-method-28714
    Avatar
    nazarii
    22 agosto 2013
    Best Answer
    This may help you:

    (0, 0, { values }) link to a new record that needs to be created with the given values dictionary
    (1, ID, { values }) update the linked record with id = ID (write values on it)
    (2, ID) remove and delete the linked record with id = ID (calls unlink on ID, that will delete the object completely, and the link to it as well)
    (3, ID) cut the link to the linked record with id = ID (delete the relationship between the two objects but does not delete the target object itself)
    (4, ID) link to existing record with id = ID (adds a relationship)
    (5) unlink all (like using (3,ID) for all linked records)
    (6, 0, [IDs]) replace the list of linked IDs (like using (5) then (4,ID) for each ID in the list of IDs)

    If you want to link new record to existing wizards than yes, you need to use (6, 0, [IDS]). But if you want to create new wizards on the fly and link to this record than use 'fee_ids': [(0, 0, values1), (0, 0, values2) ]

  • 相关阅读:
    mysql标准写法及其他常见问题
    java动态代理_aop2
    java动态代理_aop
    oracle11g exp导出问题:部分表导不出来
    决策树算法学习笔记
    阿里云九折优惠码
    标准差(Standard Deviation) 和 标准误差(Standard Error)
    Pipeline 与 xargs
    【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群
    求最大连续和——dp
  • 原文地址:https://www.cnblogs.com/qianxunman/p/12853914.html
Copyright © 2020-2023  润新知