def field_to_swagger_object(self, field, swagger_object_type, **kwargs): if not isinstance(field, serializers.IntegerField) or not is_json_api( self.view): return inspectors.NotHandled stringify_id = False integer_format = None parent_serializer = get_parent_serializer(field) serializer_meta = getattr(parent_serializer, 'Meta', None) model = getattr(serializer_meta, 'model', None) if model is not None: field_name = getattr(field, 'source', None) or field.field_name model_field = get_model_field(model, field_name) # Check for primary key only if sure it is pure Field (not FieldCacheMixin or anything) if (model_field is not None and isinstance(model_field, (models.IntegerField, models.AutoField)) and model_field.primary_key): stringify_id = True integer_format = self.get_format(model_field) elif field.field_name == 'id' and isinstance(field, serializers.IntegerField): stringify_id = True if not stringify_id: return inspectors.NotHandled SwaggerType, ChildSwaggerType = self._get_partial_types( field, swagger_object_type, **kwargs) return SwaggerType(type=openapi.TYPE_STRING, format=integer_format)
def field_to_swagger_object(self, field, **kwargs): if not isinstance( field, serializers.IntegerField) or not is_json_api_response( self.view.renderer_classes): return inspectors.NotHandled parent_serializer = get_parent_serializer(field) serializer_meta = getattr(parent_serializer, 'Meta', None) model = getattr(serializer_meta, 'model', None) if model is None: return inspectors.NotHandled source = getattr(field, 'source', '') or field.field_name # Use source but mean field_name model_field = get_model_field(model, source) if (isinstance(model_field, models.IntegerField) and model_field.primary_key) or \ isinstance(model_field, models.AutoField): SwaggerType, ChildSwaggerType = self._get_partial_types( field, **kwargs) return SwaggerType(type=openapi.TYPE_STRING, format=openapi.FORMAT_INT32) return inspectors.NotHandled
def field_to_swagger_object(self, field, **kwargs): if not isinstance(field.parent, serializers.ManyRelatedField) or \ not is_json_api_response(self.view.renderer_classes): return inspectors.NotHandled parent_serializer = get_parent_serializer(field) serializer_meta = getattr(parent_serializer, 'Meta', None) model = getattr(serializer_meta, 'model', None) if model is None: return inspectors.NotHandled source = getattr(field.parent, 'source', '') or field.parent.field_name field_model = get_related_model(model, source) if field_model is None: return inspectors.NotHandled model_field = get_model_field(field_model, 'pk') if isinstance(model_field, (models.IntegerField, models.AutoField)): SwaggerType, ChildSwaggerType = self._get_partial_types( field, **kwargs) return SwaggerType(type=openapi.TYPE_STRING, format=openapi.FORMAT_INT32) return inspectors.NotHandled
def _get_model_type_info(self, name, model, model_field=None, query_name=None): if model_field: return None _query_name, field_name = self._get_subname(name) query_name = query_name or _query_name related_model = field_insp.get_related_model(model, query_name) related_field = field_insp.get_model_field(related_model, field_name) if related_field is None: return None type_info = field_insp.get_basic_type_info(related_field) if type_info is None: return None # nocv type_info.update({ 'description': ('A unique {} value identifying ' 'instance of this {} sublist.').format(type_info['type'], query_name), }) return type_info
def field_to_swagger_object(self, field, swagger_object_type, **kwargs): if not isinstance( field, serializers.PrimaryKeyRelatedField) or not is_json_api( self.view): return inspectors.NotHandled if is_many_related_field(field): return inspectors.NotHandled related_model = get_field_related_model(field) if related_model: related_model_pk_field = get_model_field(related_model, 'pk') if isinstance(related_model_pk_field, (models.IntegerField, models.AutoField)): SwaggerType, ChildSwaggerType = self._get_partial_types( field, swagger_object_type, **kwargs) return SwaggerType( type=openapi.TYPE_STRING, format=self.get_format(related_model_pk_field)) return inspectors.NotHandled