我有一个(工作)查询,看起来像
authors = Authors.objects.complicated_queryset()
with_scores = authors.annotate(total_book_score=Sum('books__score'))
它找到所有通过complicated_queryset
方法返回的作者,然后总结他们的书籍总分。但是,我希望修改此QuerySet,使其仅包含去年发布的书籍的分数。假装语法:
with_scores = authors.annotate(total_book_score=Sum('books__score'),
filter=Q(books__published=2015))
这是可以使用QuerySets还是我必须编写原始SQL(或者,我猜,两个单独的查询)才能获得该行为?
答案 0 :(得分:1)
如果您正在使用Django 1.8 +
,则可以尝试使用Case
免责声明:以下代码是aproximation,我还没有对此进行过测试,因此无法完全按照这种方式运行。
df['C'] = df['A'] + df['B']