@@ -62,9 +62,11 @@ class Meta:
6262 fields = ["reference_url" , "reference_id" , "reference_type" , "scores" , "url" ]
6363
6464 def get_scores (self , instance ):
65- matching_scores = VulnerabilitySeverity .objects .filter (url = instance .url )
65+ severities_related_to_reference = []
66+ if vulnerability := self .context .get ("vulnerability" ):
67+ severities_related_to_reference = vulnerability .severities .filter (url = instance .url )
6668
67- return VulnerabilitySeveritySerializer (matching_scores , many = True ).data
69+ return VulnerabilitySeveritySerializer (severities_related_to_reference , many = True ).data
6870
6971
7072class BaseResourceSerializer (serializers .HyperlinkedModelSerializer ):
@@ -204,8 +206,7 @@ class VulnerabilitySerializer(BaseResourceSerializer):
204206 many = True , source = "filtered_fixed_packages" , read_only = True
205207 )
206208 affected_packages = MinimalPackageSerializer (many = True , read_only = True )
207-
208- references = VulnerabilityReferenceSerializer (many = True , source = "vulnerabilityreference_set" )
209+ references = serializers .SerializerMethodField ()
209210 aliases = AliasSerializer (many = True , source = "alias" )
210211 exploits = ExploitSerializer (many = True , read_only = True )
211212 weaknesses = WeaknessSerializer (many = True )
@@ -219,6 +220,17 @@ def to_representation(self, instance):
219220
220221 return data
221222
223+ def get_references (self , vulnerability ):
224+ references = vulnerability .vulnerabilityreference_set .all ()
225+
226+ serialized_references = VulnerabilityReferenceSerializer (
227+ references ,
228+ context = {"vulnerability" : vulnerability },
229+ many = True ,
230+ ).data
231+
232+ return serialized_references
233+
222234 def get_severity_range_score (self , instance ):
223235 severity_vectors = []
224236 severity_values = set ()
0 commit comments