@@ -228,6 +228,7 @@ def __init__(self, meta, ordered: bool = False):
228228 self .dump_only = getattr (meta , "dump_only" , ())
229229 self .unknown = validate_unknown_parameter_value (getattr (meta , "unknown" , RAISE ))
230230 self .register = getattr (meta , "register" , True )
231+ self .many = getattr (meta , "many" , False )
231232
232233
233234class Schema (base .SchemaABC , metaclass = SchemaMeta ):
@@ -344,6 +345,7 @@ class Meta:
344345 `OrderedDict`.
345346 - ``exclude``: Tuple or list of fields to exclude in the serialized result.
346347 Nested fields can be represented with dot delimiters.
348+ - ``many``: Whether the data is a collection by default.
347349 - ``dateformat``: Default format for `Date <fields.Date>` fields.
348350 - ``datetimeformat``: Default format for `DateTime <fields.DateTime>` fields.
349351 - ``timeformat``: Default format for `Time <fields.Time>` fields.
@@ -367,7 +369,7 @@ def __init__(
367369 * ,
368370 only : types .StrSequenceOrSet | None = None ,
369371 exclude : types .StrSequenceOrSet = (),
370- many : bool = False ,
372+ many : bool | None = None ,
371373 context : dict | None = None ,
372374 load_only : types .StrSequenceOrSet = (),
373375 dump_only : types .StrSequenceOrSet = (),
@@ -381,7 +383,7 @@ def __init__(
381383 raise StringNotCollectionError ('"exclude" should be a list of strings' )
382384 # copy declared fields from metaclass
383385 self .declared_fields = copy .deepcopy (self ._declared_fields )
384- self .many = many
386+ self .many = self . opts . many if many is None else many
385387 self .only = only
386388 self .exclude : set [typing .Any ] | typing .MutableSet [typing .Any ] = set (
387389 self .opts .exclude
0 commit comments