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

Fixed #326. Added 'form_optional_types'

parent 7ac96fd9
...@@ -196,7 +196,9 @@ class AdminModelConverter(ModelConverterBase): ...@@ -196,7 +196,9 @@ class AdminModelConverter(ModelConverterBase):
model, model,
column)) column))
if not column.nullable and not isinstance(column.type, Boolean): optional_types = getattr(self.view, 'form_optional_types', (Boolean,))
if not column.nullable and not isinstance(column.type, optional_types):
kwargs['validators'].append(validators.InputRequired()) kwargs['validators'].append(validators.InputRequired())
# Apply label and description if it isn't inline form field # Apply label and description if it isn't inline form field
......
...@@ -3,7 +3,7 @@ import logging ...@@ -3,7 +3,7 @@ import logging
from sqlalchemy.orm.attributes import InstrumentedAttribute from sqlalchemy.orm.attributes import InstrumentedAttribute
from sqlalchemy.orm import joinedload from sqlalchemy.orm import joinedload
from sqlalchemy.sql.expression import desc from sqlalchemy.sql.expression import desc
from sqlalchemy import or_, Column, func from sqlalchemy import Column, Boolean, func, or_
from flask import flash from flask import flash
...@@ -230,6 +230,16 @@ class ModelView(BaseModelView): ...@@ -230,6 +230,16 @@ class ModelView(BaseModelView):
] ]
""" """
form_optional_types = (Boolean,)
"""
List of field types that should be optional if column is not nullable.
Example::
class MyModelView(BaseModelView):
form_optional_types = (Boolean, Unicode)
"""
def __init__(self, model, session, def __init__(self, model, session,
name=None, category=None, endpoint=None, url=None): name=None, category=None, endpoint=None, url=None):
""" """
......
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