Commit 68592086 authored by Dmitry Medvinsky's avatar Dmitry Medvinsky

Fix file uploads in edit form

I've removed explicit `request.form` passing to edit form in the form instance
creation. The reason for this is that if we pass `formdata` to the constructor
it considers that all the data it needs, whilst `request.form` contains no
information about uploaded files.

If we simply omit passing `request.form` around, Flask-WTF takes care about
filling the form with `request.form` as well as `request.files`, if there are
any.

Hence file uploads now work in the model edit.
parent d47b97c9
...@@ -467,7 +467,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -467,7 +467,7 @@ class BaseModelView(BaseView, ActionsMixin):
""" """
return self.get_form() return self.get_form()
def create_form(self, form, obj=None): def create_form(self, form=None, obj=None):
""" """
Instantiate model creation form and return it. Instantiate model creation form and return it.
...@@ -475,7 +475,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -475,7 +475,7 @@ class BaseModelView(BaseView, ActionsMixin):
""" """
return self._create_form_class(obj=obj) return self._create_form_class(obj=obj)
def edit_form(self, form, obj=None): def edit_form(self, form=None, obj=None):
""" """
Instantiate model editing form and return it. Instantiate model editing form and return it.
...@@ -821,7 +821,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -821,7 +821,7 @@ class BaseModelView(BaseView, ActionsMixin):
if not self.can_create: if not self.can_create:
return redirect(return_url) return redirect(return_url)
form = self.create_form(request.form) form = self.create_form()
if form.validate_on_submit(): if form.validate_on_submit():
if self.create_model(form): if self.create_model(form):
...@@ -854,7 +854,7 @@ class BaseModelView(BaseView, ActionsMixin): ...@@ -854,7 +854,7 @@ class BaseModelView(BaseView, ActionsMixin):
if model is None: if model is None:
return redirect(return_url) return redirect(return_url)
form = self.edit_form(request.form, model) form = self.edit_form(obj=model)
if form.validate_on_submit(): if form.validate_on_submit():
if self.update_model(form, model): if self.update_model(form, model):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment