MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / _update_metadata

Method _update_metadata

api/metadata/serializers.py:232–256  ·  view source on GitHub ↗
(
        self,
        instance: Model,
        metadata_data: list[dict[str, Any]],
    )

Source from the content-addressed store, hash-verified

230 )
231
232 def _update_metadata(
233 self,
234 instance: Model,
235 metadata_data: list[dict[str, Any]],
236 ) -> None:
237 content_type = ContentType.objects.get_for_model(type(instance))
238 existing_metadata = Metadata.objects.filter(
239 object_id=instance.pk,
240 content_type=content_type,
241 )
242
243 new_metadata = [
244 Metadata(
245 model_field=model_field,
246 content_type=content_type,
247 object_id=instance.pk,
248 field_value=metadata_item["field_value"],
249 )
250 for metadata_item in metadata_data
251 if (model_field := metadata_item["model_field"]) and model_field.pk
252 ]
253
254 with transaction.atomic():
255 existing_metadata.delete()
256 Metadata.objects.bulk_create(new_metadata)

Callers 6

createMethod · 0.80
updateMethod · 0.80
createMethod · 0.80
updateMethod · 0.80
createMethod · 0.80
updateMethod · 0.80

Calls 3

MetadataClass · 0.90
bulk_createMethod · 0.80
deleteMethod · 0.45

Tested by

no test coverage detected