【发布时间】:2019-11-17 20:36:23
【问题描述】:
我需要知道如何在 Django 模型中创建一个函数,该模型遍历 SQL 数据库,特别是另一个模型。
我的 Django 项目包含两个模型,“Accelerator”和“Review”。 Accelerator 模型有一个十进制字段“overall_rating”,其值取决于输入到 Review 模型字段之一“overall”中的值的累积。为了完成这项工作,我得出的结论是,我需要在 Accelerator 模型中创建一个函数:
- 遍历 Review 模型数据库
- 将 Review.overall 的值添加到满足特定条件的列表中
- 计算列表的总值并将其除以列表长度以确定overall_rating 的值
accelerator.overall_rating 的值很容易发生变化(即,只要发布了对该“加速器”的新评论并因此添加了新的 review.overall 值,它就需要更新)。所以我的问题是:
- 将函数插入到我的加速器模型中是否会确保其值根据审查模型输入而变化?
- 如果是,需要什么语法来遍历我的数据库的审阅模型内容?
(我只在共享代码中包含了相关的模型字段)
class Accelerator(models.Model):
overall_rating = models.DecimalField(decimal_places=2, max_digits=3)
class Review(models.Model):
subject = models.ForeignKey(Accelerator, on_delete=models.CASCADE, blank=False)
overall = models.DecimalField(decimal_places=2, max_digits=3)
【问题讨论】:
-
你不应该迭代你的数据库,而是聚合/注释。