Skip to content

Commit a008c37

Browse files
committed
Avoid filtering on prefetched query
Signed-off-by: Keshav Priyadarshi <[email protected]>
1 parent 9d0791f commit a008c37

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

vulnerabilities/api.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,16 @@ class Meta:
6262
fields = ["reference_url", "reference_id", "reference_type", "scores", "url"]
6363

6464
def get_scores(self, instance):
65-
severities_related_to_reference = []
66-
if vulnerability := self.context.get("vulnerability"):
67-
severities_related_to_reference = vulnerability.severities.filter(url=instance.url)
65+
severities_related_to_reference = [
66+
severity
67+
for severity in self.context.get("severities", [])
68+
if severity.url == instance.url
69+
]
6870

69-
return VulnerabilitySeveritySerializer(severities_related_to_reference, many=True).data
71+
return VulnerabilitySeveritySerializer(
72+
severities_related_to_reference,
73+
many=True,
74+
).data
7075

7176

7277
class BaseResourceSerializer(serializers.HyperlinkedModelSerializer):
@@ -222,10 +227,11 @@ def to_representation(self, instance):
222227

223228
def get_references(self, vulnerability):
224229
references = vulnerability.vulnerabilityreference_set.all()
230+
severities = vulnerability.severities.all()
225231

226232
serialized_references = VulnerabilityReferenceSerializer(
227233
references,
228-
context={"vulnerability": vulnerability},
234+
context={"severities": severities},
229235
many=True,
230236
).data
231237

0 commit comments

Comments
 (0)