首先,这里提供了这个示例项目,以便任何人都可以查看它,并让我知道哪里出了问题。
我有两种型号, Package 和应收帐款。在包中,有一个字段total_package,在应收账款中,最初有两个字段,折扣和批准的_package。我想访问总的\u包,并从中减去折扣以自动填充已批准的\u包字段。如果您查看项目的test.js文件,我试图使用js实现同样的效果,但这并没有实现我的意图。我不知道哪里出了问题。我还想学习如何使用纯django方式实现这一点。有人能帮我吗?
模型:
class Package(models.Model):
rt_number=ForeignKey(Patient, on_delete=CASCADE)
diagnosis=models.ForeignKey(Diagnosis, on_delete=CASCADE)
treatment=ForeignKey(Treatment, on_delete=CASCADE)
patient_type=ForeignKey(PatientType, on_delete=CASCADE)
date_of_admission=models.DateField(default=None)
max_fractions=models.IntegerField(default=None)
total_package=models.DecimalField(max_digits=10, decimal_places=2)
class Receivables(models.Model):
rt_number=ForeignKey(Patient, on_delete=CASCADE)
discount=models.DecimalField(max_digits=9, decimal_places=2, default=None)
approved_package=models.DecimalField(max_digits=10, decimal_places=2, default=None)
proposed_fractions=models.IntegerField()
done_fractions=models.IntegerField()
base_value=models.DecimalField(max_digits=10, decimal_places=2)
expected_value=models.DecimalField(max_digits=10, decimal_places=2)
希望在这个问题上得到一些帮助。提前谢谢。
2条答案
按热度按时间67up9zun1#
首先,您需要从包的外键访问相应包对象的total_包。然后,您可以根据需要执行计算。比如,如果r1是一个对象,它通过一个外键链接到package对象,那么我们可以这样做。
注意-执行此操作之前,请确保r1链接到包对象
vkc1a9a22#
在这两个类中,您都有一个公共字段,即rt_编号。因此,您可以设置一个属性,从可接收的模型类中获取一个包对象,并使用它来计算或执行任何您想要执行的操作。
在可接收类中:
另外,我认为total_包不应该是模型字段的一部分,而应该是一个简单的方法或属性(如def包),并且只在需要时计算,而不是每次保存对象时计算。但由于某些原因,您可能需要存储它。而且,这一点很重要,如果患者只能有一个包模型关联,请更改一对一关系的rt_编号。