我有一个名为UserInteraction
的模型,它有一个外键,字段名称为interaction
。然后,交互模型具有外键,字段名称为content
。随后,Content
模型具有FK,content_type
,其具有名为is_scored
的布尔字段。
我正在做的一些查询是:
user_interactions = UserInteraction.objects.filter(user=user).prefetch_related('interaction__content')
total_scored = user_interactions.filter(interaction__content__content_type__is_scored=True).count()
我的UserInteraction
模型也有at_ended字段,基本上我必须按周分组UserInteraction
模型。发布,我在列表中添加了每周分组数据(让我们将该列表称为每周)。因此,例如,每周包含第1周列表:[<UserInteraction: LG.2016/3/27@laugh.guru - Play School - 1>]
和第2周列表:[<UserInteraction: LG.2016/3/27@laugh.guru - Vanilla - 1>, <UserInteraction: LG.2016/3/27@laugh.guru - Hyperlink - 1>]
。
组合的每周列表看起来像[[<UserInteraction: LG.2016/3/27@laugh.guru - Play School - 1>], [<UserInteraction: LG.2016/3/27@laugh.guru - Vanilla - 1>, <UserInteraction: LG.2016/3/27@laugh.guru - Hyperlink - 1>]]
。
对于每周,我想计算total_scored
(已在查询集上计算 - 上面粘贴的代码)。
我想知道,我怎么能为名为'每周'的名单做到这一点?我尝试了很多使用列表理解技术,但是我在列表上使用过滤器(使用lambda)时找不到跨越关系的方法,当我在查询集上应用过滤器时,我可以这样做。