@@ -157,6 +157,8 @@ class VulnSerializerRefsAndSummary(BaseResourceSerializer):
157157
158158 aliases = serializers .SerializerMethodField ()
159159
160+ weaknesses = serializers .SerializerMethodField ()
161+
160162 def get_aliases (self , obj ):
161163 # Assuming `obj.aliases` is a queryset of `Alias` objects
162164 return [alias .alias for alias in obj .aliases .all ()]
@@ -173,6 +175,9 @@ def get_references(self, vulnerability):
173175
174176 return serialized_references
175177
178+ def get_weaknesses (self , obj ):
179+ return [weakness .to_dict () for weakness in getattr (obj , "prefetched_weaknesses" , [])]
180+
176181 class Meta :
177182 model = Vulnerability
178183 fields = [
@@ -185,6 +190,7 @@ class Meta:
185190 "risk_score" ,
186191 "exploitability" ,
187192 "weighted_severity" ,
193+ "weaknesses" ,
188194 ]
189195
190196
@@ -362,16 +368,11 @@ def get_vulnerabilities_for_a_package(self, package, fix) -> dict:
362368 to_attr = "prefetched_weaknesses" ,
363369 )
364370 )
365- vulnerabilities_data = VulnSerializerRefsAndSummary (
371+ return VulnSerializerRefsAndSummary (
366372 instance = qs ,
367373 many = True ,
368374 context = {"request" : self .context ["request" ]},
369375 ).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
375376
376377 def get_fixing_vulnerabilities (self , package ) -> dict :
377378 """
0 commit comments