如何在python中调用记录

时间:2018-01-29 13:56:18

标签: python odoo-10

在account.invoice模型中,我们与payment.term模型有很多关系:

    payment_term_id = fields.Many2one('account.payment.term', 
                                   string='Payment Terms', 
                                   oldname='payment_term',
                                   readonly=True, 
                                   states={'draft': [('readonly', False)]})

我想在payment.term模型中创建一个方法,该方法在我们输入付款条款表单的地方调用account.invoice记录的id。这怎么可能用python代码?我知道用xml代码执行此操作我们使用context

context="{'default_invoice_id': active_id}"

但我需要在python代码中执行此操作。

1 个答案:

答案 0 :(得分:0)

最简单的方法是:

  • payment_term_id模型中的字段account_invoice更改为:

    payment_term_id = fields.Many2one(comodel_name='account.payment.term', 
                               string='Payment Terms',
                               inverse_name='invoice_ids', 
                               oldname='payment_term',
                               readonly=True, 
                               states={'draft': [('readonly', False)]})
    
  • 在其他模型account.payment.term中添加字段:

    类AccountPaymentTerm(models.Model):

    _name = 'account.payment.term'
    _description = 'Payment term'
    _inherit = 'account.payment.term'
    
    invoice_ids = fields.Many2one(
        string='invoices',
        comodel_name='account.invoice',
        required=True,
        ondelete='cascade',
    )