Skip to content

Commit 1589949

Browse files
committed
Add prefetch
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
1 parent 2c46dc5 commit 1589949

File tree

1 file changed

+18
-12
lines changed

1 file changed

+18
-12
lines changed

vulnerabilities/views.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -156,26 +156,32 @@ class VulnerabilityDetails(DetailView):
156156
slug_field = "vulnerability_id"
157157

158158
def get_queryset(self):
159-
"""
160-
Prefetch and optimize related data to minimize database hits.
161-
"""
162159
return (
163160
super()
164161
.get_queryset()
165162
.select_related()
166163
.prefetch_related(
167-
"references",
168-
"aliases",
169-
"weaknesses",
170-
"severities",
171-
"exploits",
172164
Prefetch(
173-
"affecting_packages",
174-
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
165+
"references",
166+
queryset=models.VulnerabilityReference.objects.only("reference_id", "reference_type", "url"),
175167
),
176168
Prefetch(
177-
"fixed_by_packages",
178-
queryset=models.Package.objects.only("type", "namespace", "name", "version"),
169+
"aliases",
170+
queryset=models.Alias.objects.only("alias"),
171+
),
172+
Prefetch(
173+
"weaknesses",
174+
queryset=models.Weakness.objects.only("cwe_id"),
175+
),
176+
Prefetch(
177+
"severities",
178+
queryset=models.VulnerabilitySeverity.objects.only("scoring_system", "value", "url", "scoring_elements", "published_at"),
179+
),
180+
Prefetch(
181+
"exploits",
182+
queryset=models.Exploit.objects.only(
183+
"data_source", "description", "required_action", "due_date", "notes"
184+
),
179185
),
180186
)
181187
)

0 commit comments

Comments
 (0)