1- from ..forms import MultipleEmbeddedModelFormField
1+ from ..forms import EmbeddedModelArrayFormField
22from . import EmbeddedModelField
33from .array import ArrayField
44
55
6- class MultipleEmbeddedModelField (ArrayField ):
6+ class EmbeddedModelArrayField (ArrayField ):
77 def __init__ (self , model , ** kwargs ):
88 super ().__init__ (EmbeddedModelField (model ), ** kwargs )
99
1010 def deconstruct (self ):
1111 name , path , args , kwargs = super ().deconstruct ()
12- if (
13- path
14- == "django_mongodb_backend.fields.multiple_embedded_model.MultipleEmbeddedModelField"
15- ):
16- path = "django_mongodb_backend.fields.MultipleEmbeddedModelField"
12+ if path == "django_mongodb_backend.fields.multiple_embedded_model.EmbeddedModelArrayField" :
13+ path = "django_mongodb_backend.fields.EmbeddedModelArrayField"
1714 kwargs .update (
1815 {
1916 "model" : self .base_field .embedded_model ,
@@ -23,10 +20,15 @@ def deconstruct(self):
2320 del kwargs ["base_field" ]
2421 return name , path , args , kwargs
2522
23+ def get_db_prep_value (self , value , connection , prepared = False ):
24+ if isinstance (value , list | tuple ):
25+ return [self .base_field .get_db_prep_save (i , connection ) for i in value ]
26+ return value
27+
2628 def formfield (self , ** kwargs ):
2729 return super ().formfield (
2830 ** {
29- "form_class" : MultipleEmbeddedModelFormField ,
31+ "form_class" : EmbeddedModelArrayFormField ,
3032 "model" : self .base_field .embedded_model ,
3133 "max_length" : self .size ,
3234 "prefix" : self .name ,
0 commit comments