问题标签 [computed-field]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
147 浏览

python-3.x - 如何在 odoo 12 中添加与销售订单相关的 res.partner 中的计算字段

我在res.partner模型中,我添加了这个:

为了得到我在客户已经完成的每个销售订单上计算的点,但我得到一个错误

0 投票
2 回答
244 浏览

calculated-columns - 尝试编写一个简单的计算列表达式(IF 语句)

我的表中有一个名为“BanquetPrize”的列和另一个名为“PrizeWinner”的列。如果“BanquetPrize”字段为NOT NULL,我希望“PrizeWinner”字段自动填写“YES”,如果是IS NULL,则应为“NO”。(坚持)

我对 SQL 非常陌生,并且来自表达式本来应该是的 DBF 表:

但我不知道如何用 SQL 编写它。我试过的:

显然这两种语法都是错误的,所以我希望有人能教我正确的写法吗?

0 投票
2 回答
880 浏览

keyerror - Odoo 开发中何时、为什么以及如何避免 KeyError

我注意到我开发的一些自定义模块可以安装在有记录的数据库上,而另一些则抛出 KeyError 消息,除非数据库为空(无记录)。通常,当模块包含计算字段时会出现错误。那么,有人知道为什么会这样吗?以及我的代码应该如何避免这种错误?抛出此错误的示例计算字段如下所示:

0 投票
0 回答
75 浏览

filtering - 在 Odoo 11 CE 中,如何根据相关模型的值过滤从计算字段返回的记录?

在 Odoo V11 CE 中,我试图弄清楚如何从 hr.payslip.line 中获取 'amount' 字段,其中 'code' = "NET" 并在父 hr.payslip 的表单视图中显示该字段。

hr.payslip 通过相关字段“slip_id”与 hr.payslip.line 具有 One2many 关系。在我的情况下,每张工资单都有多条工资单行,但只有其中一行有“代码”“NET”。

这是我到目前为止的代码:

我认为它正在工作,但后来我意识到它没有从 hr.payslip.line 表中正确的“code = NET”行中获取“金额”值。无论我在看哪个工资单,“net_pay”值都是从同一行返回的,大致位于表格的中间。

我认为“self.env”意味着只考虑通过“slip_id”相关的记录,但似乎我不明白它的实际作用。

如何使计算字段查找具有代码“NET”且具有与父工资单的 id 匹配的 slip_id 的行?

0 投票
1 回答
512 浏览

firebird - 服务器端的 Firebird 计算(计算)字段

一般的 SQL 和开发新手,我有一个包含字段(INDEX、NAME、POPULATION、AREA)的表(COUNTRIES)通常我添加一个客户端(Delphi)计算字段(DENSITY)和 OnCalcField:

尝试更改为 Firebird 计算字段以在服务器端完成所有计算,我创建了一个名为密度的字段,并在 IBEXPERT“计算源”列中:

一切正常,但是当 Record.AREA = 0 我有除以零错误。

我的问题是如何避免这种情况,例如使用 IF THEN 条件来避免在除数为 0 时计算字段或在这种情况下使结果 = 0。

我的环境:Delphi RIO、Firebird 3.0、IBExpert

0 投票
1 回答
187 浏览

postgresql - GraphQL:添加计算字段时出错

我正在尝试使用 hasura API 在模式“abc”中将计算字段添加到我的 graphql 表“用户”,但收到以下错误:

该功能已正确添加:

我可以从下拉列表中选择函数“全名”,但在添加计算字段时出现错误。任何指导表示赞赏。谢谢你。

在此处输入图像描述

0 投票
2 回答
320 浏览

postgresql - GraphQL:添加计算字段时出现过载函数错误

我正在尝试使用 hasura API 在模式“abc”中将计算字段添加到我的 graphql 表“用户”,但收到以下错误:

该功能已正确添加:

id 字段存在于用户表中。

我可以从下拉列表中选择函数“get_accounts”,但在添加计算字段时出现错误。任何指导表示赞赏。谢谢你。

0 投票
0 回答
168 浏览

odoo - 通过 Studio 添加的新模型导致计算字段上出现 KeyError

【Odoo v13 云版】

我通过 Studio 添加了一个新模型:crm.lead.activities. 在该模型中,我有一个计算字段x_name

依赖关系:x_res_id、x_date、x_activity_type_id

计算:

x_res_id是一个many2one字段crm.lead

但是当我尝试(卸载)安装一个模块时,我得到一个 KeyError。我能做些什么来解决这个问题?

0 投票
4 回答
465 浏览

sql - 在不删除表/列的情况下将现有列更改为 Computed 和 Persisted

我想将 SQL Server 中的现有列更改为计算并保留而不删除表/列。

我有一个自动递增的ID列和另一个ReportID用这个计算格式化的列:

例如:

  • 对于 ID = 1, 2, ...., 10, 11, ..., 100, 101
  • ReportID 将是RPT2122000001, RPT2122000002,..., RPT2122000010, RPT2122000011, ..., RPT2122000101,RPT2122000102

以前,我们在“插入后”触发器中执行此操作 - 计算值并更新行。但是通过这样做,当负载很高并且报告由不同的用户并行生成时,一些 ReportID 会被复制。

因此,为了解决这个问题,我想将现有列更改为计算列,'RPT'+{FiscalYear}+{0s}+{Auto Incremented ID}但问题是我希望现有数据保持不变。因为如果现在运行计算,所有上一年的数据都将被修改为当前财政年度,这是错误的。

当我通过在 Management Studio 中设置计算值直接尝试时,它也在内部运行 drop 并在后台重新添加。

我看到了很多答案,但他们还不够满意。

我尝试使用计算值创建一个新列,然后尝试重命名,这也是不允许的。

编辑 1

错误:

编辑 2

财政年度计算:

另外,有没有不创建新列的方法?

0 投票
0 回答
50 浏览

django - Django:错误实现 ComputedTextField(无法在没有主键的情况下强制更新 save())

这个想法

为了使代码更易于理解,我将首先解释我的代码(问题可能来自于此)应该做什么:我将报告保存在我的模型中。我给这些报告自己的 ID 或编号,因为这是绝对必要的。这个 ID 的结构如下:

示例:2021001、2021002、...、2022001

编码

为此,我开发了以下模型。由于要自动计算该值,因此我使用 @property 装饰器。为了以后能够更轻松地将 ID(名称:einsatznummer)用作字段并且仅用于我的 REST Api,我使用了computed_property包。

当我尝试添加新记录时,出现以下错误:

我认为错误是因为我错误地实现了ComputedTextFields 。该文档说明了以下内容:

笔记

请务必注意,您的计算域数据不会立即写入数据库。您必须(重新)保存数据的所有实例,才能在数据库中填充计算字段。在您这样做之前,您将能够在加载模型实例时访问这些字段,但您不会从它们的可查询性中受益。

您可以做到这一点的一种方法是在数据迁移中,使用类似的东西:

例如在 MyModel.objects.all().iterator(): instance.save()

我根据文档进行设置的尝试是首先创建一个空迁移,然后在实例中通过 migrations.RunPython(save_func), 保存它。由于这只会导致错误,因此我尝试将其包含在模型的 save() 函数中。然而,这显然是错误的。有谁知道如何正确保存实例?