DJANGO相关字段子集平均值

发布于 2025-01-21 15:42:14 字数 471 浏览 2 评论 0原文

我在Django App用户日模型中有两个模型

class UserDay(models.Model):
   date = DateField()

   @property
   def avg(self):
      return self.activities.aggregate(Avg('point'))

活动模型:

class Activity(models.Model):
   point = models.SmallIntegerField()

   userDay = models.ForeignKey(
      UserDay, on_delete=models.CASCADE, related_name="activities"
   )

用户日可以进行“ N”活动。我只想获得最后一个“ M”活动点的平均值。

我该怎么办? :d

i have two models in django app

UserDay model:

class UserDay(models.Model):
   date = DateField()

   @property
   def avg(self):
      return self.activities.aggregate(Avg('point'))

Activity model:

class Activity(models.Model):
   point = models.SmallIntegerField()

   userDay = models.ForeignKey(
      UserDay, on_delete=models.CASCADE, related_name="activities"
   )

a user day can have "n" activities. i just want to get average of last "m" activities point.

HOW CAN I DO IT?? :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千寻… 2025-01-28 15:42:14

由于您需要平均进行最后的M活动,因此我们可以使用用户日进行所有活动,并分类M对象的顺序。

class UserDay(models.Model):


date = DateField()

   @property
   def avg(self):
      return self.activities.order_by('-id')[:m].aggregate(Avg('point'))

Since you need a average of last m activities, we can get the all activities in realtion with UserDay and sort in decreasing order for m objects.

class UserDay(models.Model):


date = DateField()

   @property
   def avg(self):
      return self.activities.order_by('-id')[:m].aggregate(Avg('point'))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文