【问题标题】:How to display another field instead of default field in a many2one field in odoo如何在odoo的many2one字段中显示另一个字段而不是默认字段
【发布时间】:2020-11-16 15:52:30
【问题描述】:

我想在 odoo 中的 many2one 字段中显示自定义字段,但仅在特定视图中,即销售订单视图中。 这些是我的模型

 class SalesPartnerBankInherit(models.Model):
    _inherit = 'res.partner.bank'

    display_on_sales = fields.Boolean(string='Display On Sales Quotation '
                                             'Report', readonly=False)
    location = fields.Char()

我想在销售订单的 many2one 字段中显示位置字段。

  class CustomSalesInherit(models.Model):
    _inherit = 'sale.order'

    quotation = fields.Text(string='Quotation Title', readonly=False,
                            compute='_compute_quotation_title',
    
    location = fields.Many2one('res.partner.bank', domain=[('location', '!=', None)],
                                string='Bank Account Location')

【问题讨论】:

  • 您可以使用计算字段或相关字段来执行此操作。但首先我在这里错过了一个要求:“res.partner.bank”记录将在何处或何时设置?或者你从哪里得到数据?您的解决方案现在将允许用户在预过滤的销售订单上设置银行帐户(仅显示设置了位置字段的银行帐户)。在您的流程上下文中,客户或您公司的银行账户是什么银行账户?
  • 我不懂你

标签: python odoo odoo-13


【解决方案1】:

在您的情况下,我真的看不出银行账户和销售订单之间的真正联系在哪里,但第二个字段应该可以工作。但首先您应该将 Many2one 字段重命名为 res.partner.bank

class CustomSalesInherit(models.Model):
    _inherit = 'sale.order'

    # i've added display_on_sales to the domain
    # because the field names makes sense for using it here
    partner_bank_id = fields.Many2one(
        comodel_name='res.partner.bank',
        domain=[('location', '!=', None), ('display_on_sales', '=', True)],
        string='Bank Account Location')

    # related field to location
    location = fields.Char(related="partner_bank_id.location")

【讨论】:

    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 2021-05-18
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多