【发布时间】:2021-11-13 14:09:57
【问题描述】:
我刚开始使用 Django 并有以下问题: 我已经建立了一个看起来像的模型
class Automation_Apps(models.Model):
app_name = models.CharField(max_length=50)
app_description = models.TextField(blank=True)
view_function_name = models.CharField(max_length=50)
time_saver_min = models.IntegerField()
implementation_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.app_name
class Automation_Usage(models.Model):
used_app = models.ForeignKey(Automation_Apps, on_delete=models.CASCADE)
used_by_user = models.ForeignKey(User, on_delete=models.CASCADE)
used_on_date = models.DateTimeField(auto_now_add=True)
我想这样查询:
Select Sum(time_saver_min)
from Automation_Apps, Automation_Usage
where Automation_Usage.used_app = Automation_Apps.app_name
这样做的目标如下:
Automation_App会有Apps和一个字段,使用这个app能节省多少时间
Automation_Usage 将在用户使用该应用程序时拥有记录。
通过我的查询,我想提取应用程序的使用频率以及使用它节省了多少时间(来自Automation_App)。
在我看来,我想这样做。
【问题讨论】:
-
查询的目标是什么?我想,您想获得特定
app_name的time_saver_min总和,但不确定为什么要包含其他模型? -
查询的目标:我想收集有多少用户使用了这个应用程序。这在 Automation_Usage 中。但我想节省时间。此信息位于 Automation_Apps 中。结果应该给我所有使用的应用程序的时间总和。这有意义吗?
-
对!所以你想得到每个用户在所有应用程序上使用的时间总和?我已添加答案,请查看。
-
看来,您还需要每个应用程序的用户数。我在答案中添加了两个选项。