gpt4 book ai didi

python - 如何从另一个模型的字段读取值?

转载 作者:行者123 更新时间:2023-12-01 08:33:19 25 4
gpt4 key购买 nike

我正在使用 odoo 10 并创建了一些字段,但遇到以下问题:

我在模块 sale.order 中创建了自己的字段 (x_order_bestelldatum)。当我确认报价时,我在此字段中输入有效订单日期。现在,当我创建发票时,我想读取 account.invoice 模块中 sale.order 模块的 x_order_bestelldatum 字段,以便可以在发票上打印订单日期。

如何从模型 account.invoice 中的模型 sale.order 中读出字段 x_order_bestelldatum?

这是我在文件 models.py 中的代码,但它不起作用:

from odoo import models, fields, api

class felder_saleorder(models.Model):

_inherit = 'sale.order'
x_order_bestelldatum = fields.Date(string="Bestelldatum")


class felder_invoice(models.Model):

_inherit = 'account.invoice'
sale_order = fields.Many2one('sale.order','sale_order')
x_bestelldatum = fields.Date(string="Bestelldatum",related='sale_order.x_order_bestelldatum')
x_lieferdatum = fields.Date(string="Lieferdatum")

这不起作用(字段 x_bestelldatum 保持为空):

sale_order = fields.Many2one('sale.order','sale_order')
x_bestelldatum = fields.Date(string="Bestelldatum",related='sale_order.x_order_bestelldatum')

最佳答案

好吧,我们不要按照你的方式去做,而且我不明白你是如何做的。因此,我建议一些可能对您有所帮助的其他可能性。

首先让我们谈谈您命名为“sale_order”的销售订单字段。您可以通过两个选项在 sale_order 字段中输入数据。1)。通过python自动2)。通过从列表中进行手动选择。

如果手动输入数据,您应该使用onchange函数:

@api.onchange('sale_order')
def get_order_date(self):
if self.sale_order:
self.x_bestelldatum = self.sale_order.x_order_bestelldatum

如果您通过 python 自动输入数据,那么您可以使用货币或创建函数来填充该字段。

创建函数:

@api.model
def create(self, vals):
new_record = super(felder_invoice, self).create(vals)
if new_record.sale_order:
new_record.x_bestelldatum = new_record.sale_order.x_order_bestelldatum

return new_record

计算功能:

首先,您需要像这样修改 py 文件中的场减速度

x_bestelldatum = fields.Date(string="Bestelldatum",compute="get_order_date")

然后您需要为此创建一个计算函数:

@api.one
@api.depends('sale_order')
def get_order_date(self):
if self.sale_order:
self.x_bestelldatum = self.sale_order.x_order_bestelldatum

您可以使用上述函数获取订单日期,并将能够在报告/打印中获取其值。希望能帮助到你。干杯!

关于python - 如何从另一个模型的字段读取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53838698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com