回答編集履歴
2
fixed typo\.
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
クエリを
|
1
|
+
クエリを複数回投げることにはなりますが、こんな感じでしょうか。
|
2
2
|
|
3
3
|
|
4
4
|
|
1
よくない例だったので修正
test
CHANGED
@@ -2,34 +2,24 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
```
|
5
|
+
````python
|
10
|
-
|
11
|
-
# 20歳以下のメンバーが10人以上いるチームを抽出
|
12
6
|
|
13
7
|
qs = (
|
14
8
|
|
15
|
-
|
9
|
+
Team.objects
|
16
10
|
|
17
|
-
.
|
11
|
+
.annotate(member_count=Count('member__id'))
|
18
12
|
|
19
|
-
.annotate(member_count=Count('team_id'))
|
20
|
-
|
21
|
-
.filter(age__lte=20, member_count__gte=10)
|
13
|
+
.filter(member__age__lte=20, member_count__gte=10)
|
22
14
|
|
23
15
|
)
|
24
16
|
|
25
|
-
for
|
17
|
+
for team in qs:
|
26
18
|
|
27
|
-
print(
|
19
|
+
print('Team.id:{}, MemberCount: {}'.format(team.id, team.member_count))
|
28
20
|
|
29
|
-
|
21
|
+
for member in team.member_set.filter(age__lte=20).all():
|
30
22
|
|
31
|
-
|
23
|
+
print('Member.id:{}'.format(member.id))
|
32
|
-
|
33
|
-
print(member.name)
|
34
24
|
|
35
25
|
```
|