1010from ..forms import SimpleArrayField
1111from ..query_utils import process_lhs , process_rhs
1212from ..utils import prefix_validation_error
13+ from .validators import LengthValidator
1314
1415__all__ = ["ArrayField" ]
1516
@@ -27,14 +28,23 @@ class ArrayField(CheckFieldDefaultMixin, Field):
2728 }
2829 _default_hint = ("list" , "[]" )
2930
30- def __init__ (self , base_field , size = None , ** kwargs ):
31+ def __init__ (self , base_field , size = None , fixed_size = None , ** kwargs ):
3132 self .base_field = base_field
3233 self .size = size
34+ self .fixed_size = fixed_size
35+ if fixed_size and size :
36+ raise ValueError ("Cannot define both, size and fixed_size" )
37+
3338 if self .size :
3439 self .default_validators = [
3540 * self .default_validators ,
3641 ArrayMaxLengthValidator (self .size ),
3742 ]
43+ if self .fixed_size :
44+ self .default_validators = [
45+ * self .default_validators ,
46+ LengthValidator (self .fixed_size ),
47+ ]
3848 # For performance, only add a from_db_value() method if the base field
3949 # implements it.
4050 if hasattr (self .base_field , "from_db_value" ):
0 commit comments