Django模型字段依赖于另一个模型字段

Django模型字段依赖于另一个模型字段,django,Django,我有一个一般性的问题。假设我有一个模型字段,它是不同模型中其他两个字段的总和 我很难实现这一点。 让我们以下面的例子为例 模型1 字段1 字段2 模型2 模型1中的字段3(取决于字段1和字段2) 如果我把它作为我的webapp中特定页面的一部分。这意味着,如果field1或field2已更改,但该人员未访问汇总值并在field3中更新的页面,则field3将携带不正确的值 唯一能解决这样一个问题的方法就是永远不要创建field3。每次求和(或依赖于其他字段的任何其他操作)都要在view.py内的

我有一个一般性的问题。假设我有一个模型字段,它是不同模型中其他两个字段的总和

我很难实现这一点。 让我们以下面的例子为例

模型1 字段1 字段2

模型2 模型1中的字段3(取决于字段1和字段2)

如果我把它作为我的webapp中特定页面的一部分。这意味着,如果field1或field2已更改,但该人员未访问汇总值并在field3中更新的页面,则field3将携带不正确的值

唯一能解决这样一个问题的方法就是永远不要创建field3。每次求和(或依赖于其他字段的任何其他操作)都要在view.py内的变量中执行

这意味着每次需要时都要计算该值

这样我就不会忘记重新计算field3的值

我的问题是这是最好的方法吗?是否有一种方法可以在依赖项字段更改时自动更改字段3,而无需访问特定页面

我尝试使用字段3的外键,并尝试在model.py中添加两个外键的值,但我认为这是不允许的

字段3=字段1+字段2

有什么建议吗

**

  • 为进一步澄清问题,根据请求添加了以下示例
如果您注意到交易表下的总价是基于项目和装运的价格。但是,这需要访问order.html页面

我的问题是有人改变了导致价格不同的项目。如果不访问order.html页面,事务表中的totalprice将不会反映新的价格。如果它所依赖的任何其他字段在不需要访问order.html页面的情况下被更新,是否有一种方法可以以更新totalprice的方式构建“transaction”模型

**


您可以覆盖装运和物料模型中的保存功能

def save(self, *args, **kwargs):
    #change total_price
    # Transaction.save(update_fields['total_price'])
    super(Item, self).save(*args, **kwargs)

但是,“更改总价”将取决于您将如何关联您的模型以及如何找到合适的装运对象

您应该能够覆盖model1中的保存功能并在其中添加行为,但这取决于它们如何链接在一起。然而,这听起来像是一种不寻常的设计模式,如果您共享您的完整模型,可能会有另一种解决方法。听起来您想要一个数据库视图…?添加了代码以澄清我的问题。谢谢
def save(self, *args, **kwargs):
    #change total_price
    # Transaction.save(update_fields['total_price'])
    super(Item, self).save(*args, **kwargs)