Commit b3d21410 authored by Serge S. Koval's avatar Serge S. Koval

Fixed #53. It is now possible to specify field conversion classes for...

Fixed #53. It is now possible to specify field conversion classes for sqlalchemy and peewee backends.
parent 5124819e
...@@ -31,6 +31,20 @@ class ModelView(BaseModelView): ...@@ -31,6 +31,20 @@ class ModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name')) column_filters = (BooleanEqualFilter(User.name, 'Name'))
""" """
model_form_converter = CustomModelConverter
"""
Model form conversion class. Use this to implement custom field conversion logic.
For example::
class MyModelConverter(AdminModelConverter):
pass
class MyAdminView(ModelView):
model_form_converter = MyModelConverter
"""
filter_converter = filters.FilterConverter() filter_converter = filters.FilterConverter()
""" """
Field to filter converter. Field to filter converter.
...@@ -176,7 +190,7 @@ class ModelView(BaseModelView): ...@@ -176,7 +190,7 @@ class ModelView(BaseModelView):
only=self.form_columns, only=self.form_columns,
exclude=self.excluded_form_columns, exclude=self.excluded_form_columns,
field_args=self.form_args, field_args=self.form_args,
converter=CustomModelConverter()) converter=self.model_form_converter())
if self.inline_models: if self.inline_models:
form_class = contribute_inline(self.model, form_class, self.inline_models) form_class = contribute_inline(self.model, form_class, self.inline_models)
......
...@@ -105,6 +105,20 @@ class ModelView(BaseModelView): ...@@ -105,6 +105,20 @@ class ModelView(BaseModelView):
column_filters = (BooleanEqualFilter(User.name, 'Name')) column_filters = (BooleanEqualFilter(User.name, 'Name'))
""" """
model_form_converter = form.AdminModelConverter
"""
Model form conversion class. Use this to implement custom field conversion logic.
For example::
class MyModelConverter(AdminModelConverter):
pass
class MyAdminView(ModelView):
model_form_converter = MyModelConverter
"""
filter_converter = filters.FilterConverter() filter_converter = filters.FilterConverter()
""" """
Field to filter converter. Field to filter converter.
...@@ -393,7 +407,7 @@ class ModelView(BaseModelView): ...@@ -393,7 +407,7 @@ class ModelView(BaseModelView):
""" """
Create form from the model. Create form from the model.
""" """
converter = form.AdminModelConverter(self.session, self) converter = self.model_form_converter(self.session, self)
form_class = form.get_form(self.model, converter, form_class = form.get_form(self.model, converter,
only=self.form_columns, only=self.form_columns,
exclude=self.excluded_form_columns, exclude=self.excluded_form_columns,
......
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