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

Method get_queryset

api/metadata/views.py:134–166  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

132 pagination_class = CustomPagination
133
134 def get_queryset(self): # type: ignore[no-untyped-def]
135 if getattr(self, "swagger_fake_view", False):
136 return MetadataField.objects.none()
137
138 project = get_object_or_404(
139 self.request.user.get_permitted_projects(VIEW_PROJECT), # type: ignore[union-attr]
140 pk=self.kwargs["project_pk"],
141 )
142
143 queryset = MetadataField.objects.filter(
144 organisation=project.organisation,
145 project_id=project.id,
146 )
147
148 serializer = ProjectMetadataFieldQuerySerializer(data=self.request.query_params)
149 serializer.is_valid(raise_exception=True)
150
151 if serializer.validated_data.get("include_organisation"):
152 overridden_names = queryset.values_list("name", flat=True)
153 org_fields = MetadataField.objects.filter(
154 organisation=project.organisation,
155 project__isnull=True,
156 ).exclude(name__in=overridden_names)
157 queryset = queryset | org_fields
158
159 entity = serializer.validated_data.get("entity")
160 if entity:
161 content_type = get_object_or_404(ContentType, model=entity)
162 queryset = queryset.filter(
163 metadatamodelfield__content_type=content_type,
164 )
165
166 return queryset.prefetch_related("metadatamodelfield_set__is_required_for")

Callers

nothing calls this directly

Calls 4

is_validMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected