@@ -157,6 +157,8 @@ class VulnSerializerRefsAndSummary(BaseResourceSerializer):
157
157
158
158
aliases = serializers .SerializerMethodField ()
159
159
160
+ weaknesses = serializers .SerializerMethodField ()
161
+
160
162
def get_aliases (self , obj ):
161
163
# Assuming `obj.aliases` is a queryset of `Alias` objects
162
164
return [alias .alias for alias in obj .aliases .all ()]
@@ -173,6 +175,9 @@ def get_references(self, vulnerability):
173
175
174
176
return serialized_references
175
177
178
+ def get_weaknesses (self , obj ):
179
+ return [weakness .to_dict () for weakness in getattr (obj , "prefetched_weaknesses" , [])]
180
+
176
181
class Meta :
177
182
model = Vulnerability
178
183
fields = [
@@ -185,6 +190,7 @@ class Meta:
185
190
"risk_score" ,
186
191
"exploitability" ,
187
192
"weighted_severity" ,
193
+ "weaknesses" ,
188
194
]
189
195
190
196
@@ -362,16 +368,11 @@ def get_vulnerabilities_for_a_package(self, package, fix) -> dict:
362
368
to_attr = "prefetched_weaknesses" ,
363
369
)
364
370
)
365
- vulnerabilities_data = VulnSerializerRefsAndSummary (
371
+ return VulnSerializerRefsAndSummary (
366
372
instance = qs ,
367
373
many = True ,
368
374
context = {"request" : self .context ["request" ]},
369
375
).data
370
-
371
- for vuln , vuln_instance in zip (vulnerabilities_data , qs ):
372
- vuln ["weaknesses" ] = [weakness .to_dict () for weakness in vuln_instance .prefetched_weaknesses ]
373
-
374
- return vulnerabilities_data
375
376
376
377
def get_fixing_vulnerabilities (self , package ) -> dict :
377
378
"""
0 commit comments