@@ -377,7 +377,7 @@ def _map_serializer(self, serializer):
377
377
schema ['default' ] = field .default
378
378
if field .help_text :
379
379
schema ['description' ] = str (field .help_text )
380
- self ._map_field_validators (field . validators , schema )
380
+ self ._map_field_validators (field , schema )
381
381
382
382
properties [field .field_name ] = schema
383
383
@@ -389,13 +389,11 @@ def _map_serializer(self, serializer):
389
389
390
390
return result
391
391
392
- def _map_field_validators (self , validators , schema ):
392
+ def _map_field_validators (self , field , schema ):
393
393
"""
394
394
map field validators
395
- :param list:validators: list of field validators
396
- :param dict:schema: schema that the validators get added to
397
395
"""
398
- for v in validators :
396
+ for v in field . validators :
399
397
# "Formats such as "email", "uuid", and so on, MAY be used even though undefined by this specification."
400
398
# https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#data-types
401
399
if isinstance (v , EmailValidator ):
@@ -405,9 +403,15 @@ def _map_field_validators(self, validators, schema):
405
403
if isinstance (v , RegexValidator ):
406
404
schema ['pattern' ] = v .regex .pattern
407
405
elif isinstance (v , MaxLengthValidator ):
408
- schema ['maxLength' ] = v .limit_value
406
+ attr_name = 'maxLength'
407
+ if isinstance (field , serializers .ListField ):
408
+ attr_name = 'maxItems'
409
+ schema [attr_name ] = v .limit_value
409
410
elif isinstance (v , MinLengthValidator ):
410
- schema ['minLength' ] = v .limit_value
411
+ attr_name = 'minLength'
412
+ if isinstance (field , serializers .ListField ):
413
+ attr_name = 'minItems'
414
+ schema [attr_name ] = v .limit_value
411
415
elif isinstance (v , MaxValueValidator ):
412
416
schema ['maximum' ] = v .limit_value
413
417
elif isinstance (v , MinValueValidator ):
0 commit comments