33from django_remote_forms import fields , logger
44from django_remote_forms .utils import resolve_promise
55
6- from django .forms import ModelMultipleChoiceField
6+ from django .forms import ModelMultipleChoiceField , FileField , ImageField
77
88class RemoteForm (object ):
99 def __init__ (self , form , * args , ** kwargs ):
@@ -123,6 +123,7 @@ def as_dict(self):
123123
124124 initial_data = {}
125125 foreign_key_fields = []
126+ file_fields = []
126127 comma_separated_fields = []
127128
128129 for name , field in [(x , self .form .fields [x ]) for x in self .fields ]:
@@ -134,6 +135,8 @@ def as_dict(self):
134135 foreign_key_fields .append (name )
135136 elif type (field ) in [fields .CommaSeparatedField ]:
136137 comma_separated_fields .append (name )
138+ elif type (field ) in [FileField , ImageField ]:
139+ file_fields .append (name )
137140
138141 # Please refer to the Django Form API documentation for details on
139142 # why this is necessary:
@@ -185,4 +188,11 @@ def as_dict(self):
185188 else :
186189 form_dict ['data' ][field_name ] = []
187190
191+ for field_name in file_fields :
192+ obj = form_dict ['data' ].get (field_name , None )
193+ if obj :
194+ form_dict ['data' ][field_name ] = obj .url
195+ else :
196+ form_dict ['data' ][field_name ] = None
197+
188198 return resolve_promise (form_dict )
0 commit comments