@@ -116,14 +116,18 @@ def create_missing_metadata_artifacts(apps, schema_editor):
116116 """
117117 import tempfile
118118 from django .conf import settings
119+ from django .db import models
119120
120121 PythonPackageContent = apps .get_model ("python" , "PythonPackageContent" )
121122 ContentArtifact = apps .get_model ("core" , "ContentArtifact" )
122123 Artifact = apps .get_model ("core" , "Artifact" )
123124
124125 packages = (
125126 PythonPackageContent .objects .filter (
126- metadata_sha256__isnull = False , filename__endswith = ".whl"
127+ metadata_sha256__isnull = False ,
128+ filename__endswith = ".whl" ,
129+ contentartifact__artifact__isnull = False ,
130+ contentartifact__relative_path = models .F ("filename" ),
127131 )
128132 .exclude (metadata_sha256 = "" )
129133 .prefetch_related ("contentartifact_set" )
@@ -135,18 +139,9 @@ def create_missing_metadata_artifacts(apps, schema_editor):
135139 with tempfile .TemporaryDirectory (dir = settings .WORKING_DIRECTORY ) as temp_dir :
136140 for package in packages :
137141 filename = package .filename
138- content_artifacts = list (package .contentartifact_set .all ())
139142
140143 # Get the main artifact for package
141- main_artifact = None
142- for ca in content_artifacts :
143- if ca .relative_path == filename and ca .artifact :
144- main_artifact = ca .artifact
145- break
146-
147- if not main_artifact :
148- # Main artifact does not exist
149- continue
144+ main_artifact = package .contentartifact_set .get ().artifact
150145
151146 metadata_digests = {"sha256" : package .metadata_sha256 }
152147 metadata_artifact , mismatched_sha256 = artifact_to_metadata_artifact (
0 commit comments