10
10
from ..forms import SimpleArrayField
11
11
from ..query_utils import process_lhs , process_rhs
12
12
from ..utils import prefix_validation_error
13
+ from .validators import LengthValidator
13
14
14
15
__all__ = ["ArrayField" ]
15
16
@@ -27,14 +28,23 @@ class ArrayField(CheckFieldDefaultMixin, Field):
27
28
}
28
29
_default_hint = ("list" , "[]" )
29
30
30
- def __init__ (self , base_field , size = None , ** kwargs ):
31
+ def __init__ (self , base_field , size = None , fixed_size = None , ** kwargs ):
31
32
self .base_field = base_field
32
33
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
+
33
38
if self .size :
34
39
self .default_validators = [
35
40
* self .default_validators ,
36
41
ArrayMaxLengthValidator (self .size ),
37
42
]
43
+ if self .fixed_size :
44
+ self .default_validators = [
45
+ * self .default_validators ,
46
+ LengthValidator (self .fixed_size ),
47
+ ]
38
48
# For performance, only add a from_db_value() method if the base field
39
49
# implements it.
40
50
if hasattr (self .base_field , "from_db_value" ):
0 commit comments