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

Method create

api/features/serializers.py:276–296  ·  view source on GitHub ↗
(self, validated_data: dict)

Source from the content-addressed store, hash-verified

274 return super(CreateFeatureSerializer, self).to_internal_value(data)
275
276 def create(self, validated_data: dict) -> Feature: # type: ignore[type-arg]
277 project = self.context["project"]
278 self.validate_project_features_limit(project)
279
280 # Pop M2M fields before creating the instance (can't pass to Model.objects.create)
281 owners: list[FFAdminUser] = validated_data.pop("owners", [])
282 group_owners: list[UserPermissionGroup] = validated_data.pop("group_owners", [])
283
284 user = validated_data.pop("user", None)
285 instance = super(CreateFeatureSerializer, self).create(validated_data) # type: ignore[no-untyped-call]
286
287 if owners:
288 instance.owners.add(*owners)
289 elif user and getattr(user, "is_master_api_key_user", False) is False:
290 # Auto-add the creating user as owner only when no explicit owners provided
291 instance.owners.add(user)
292
293 if group_owners:
294 instance.group_owners.add(*group_owners)
295
296 return instance # type: ignore[no-any-return]
297
298 def validate_project_features_limit(self, project: Project) -> None:
299 if not is_edge_enabled():

Callers 2

createMethod · 0.45
createMethod · 0.45

Calls 1

Tested by

no test coverage detected