Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Django中,跨模型和应用程序访问属性_Django_Django Models - Fatal编程技术网

在Django中,跨模型和应用程序访问属性

在Django中,跨模型和应用程序访问属性,django,django-models,Django,Django Models,我在文件(services.py)中有一个函数: 收入应用程序中的收入模型: class Revenue(model.Models): revenue = model.DecimalField() Expenses应用程序中的Expenses模型,我想在其中对save进行计算并填充“底线”字段: 在上述模型的保存覆盖期间,如何访问“收入”属性?我是否需要执行查询集以从费用模型中获取底线属性?此处缺少大量信息。收入和支出是两个独立的模型,它们之间没有联系。所以,当你计算一个特定的费用实例

我在文件(services.py)中有一个函数:

收入应用程序中的收入模型:

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)