在Django中,跨模型和应用程序访问属性
我在文件(services.py)中有一个函数: 收入应用程序中的收入模型:在Django中,跨模型和应用程序访问属性,django,django-models,Django,Django Models,我在文件(services.py)中有一个函数: 收入应用程序中的收入模型: class Revenue(model.Models): revenue = model.DecimalField() Expenses应用程序中的Expenses模型,我想在其中对save进行计算并填充“底线”字段: 在上述模型的保存覆盖期间,如何访问“收入”属性?我是否需要执行查询集以从费用模型中获取底线属性?此处缺少大量信息。收入和支出是两个独立的模型,它们之间没有联系。所以,当你计算一个特定的费用实例
class Revenue(model.Models):
revenue = model.DecimalField()
Expenses应用程序中的Expenses模型,我想在其中对save进行计算并填充“底线”字段:
在上述模型的保存覆盖期间,如何访问“收入”属性?我是否需要执行查询集以从费用模型中获取底线属性?此处缺少大量信息。收入和支出是两个独立的模型,它们之间没有联系。所以,当你计算一个特定的费用实例的底线时,你想使用哪一个收入实例?你会怎么说?@DanielRoseman收入模型只有一个实例,因为一家公司只能有一个收入数字。我应该有一个从费用返回到收入的外键吗?理由是一个收入对象可以有多个支出对象连接到它?你是说每个公司有一个收入实例吗?在这种情况下,是的,您肯定需要一把外国钥匙,然后您可以参考例如
self.revenue.revenue
。@DanielRoseman太棒了!谢谢你的帮助。最后的问题。。。需要明确的是,ForeignKey在收入模型中的作用是“费用=模型。ForeignKey(费用)”?不,在费用模型中的作用是收入。
class Revenue(model.Models):
revenue = model.DecimalField()
class Expenses(model.Models):
expenses = model.DecimalField()
bottom_line = model.DecimalField()
def save(self, *args, **kwargs):
bottom_line = balance(revenue, self.expenses)
super(Expenses, self).save(*args, **kwargs)