首页 > 解决方案 > Django:获取models.py中所有相关对象的列表

问题描述

这是一个愚蠢的问题,但我是 django 的新手,到目前为止我还没有找到答案。

我试图在 get_savings 函数中获取所有相关年份的列表。不要看 Year 和 Plan 的属性。它们都存在。
重点是 For 循环。我也试过for year in self.year_set.all:,但也没有用。

模型.py

class Plan(models.Model):
    title = models.CharField(max_length=50)
    ...

    @property
    def get_saving(self):
        delta: timedelta = now() - self.date_created
        months_gone = delta.days / 30
        saving = 0
        for year in Year.objects.all():
            if months_gone > year.months:
                saving = saving + year.savings_year
            else:
                saving = saving + months_gone * year.income_month
        return saving


class Year(models.Model):
    title = models.IntegerField()
    plan = models.ForeignKey(Plan, on_delete=models.CASCADE)

标签: pythondjangodjango-models

解决方案


self.year_set.all()是你需要的。

all 是一个函数,因此您需要调用它而不仅仅是引用它。


推荐阅读