Commit 528641b6 authored by Serge S. Koval's avatar Serge S. Koval

Non-nullable fields will have Required() validator by default.

parent b82188f7
......@@ -30,7 +30,7 @@ class User(db.Model):
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(120))
text = db.Column(db.Text)
text = db.Column(db.Text, nullable=False)
date = db.Column(db.DateTime)
user_id = db.Column(db.Integer(), db.ForeignKey(User.id))
......
......@@ -2,7 +2,7 @@ from sqlalchemy.orm.attributes import InstrumentedAttribute
from sqlalchemy.orm.exc import NoResultFound
from sqlalchemy.sql.expression import desc
from wtforms import ValidationError, fields
from wtforms import ValidationError, fields, validators
from wtforms.ext.sqlalchemy.orm import model_form, converts, ModelConverter
from wtforms.ext.sqlalchemy.fields import QuerySelectField, QuerySelectMultipleField
......@@ -81,6 +81,11 @@ class AdminModelConverter(ModelConverter):
'query_factory': lambda: self.view.session.query(remote_model)
})
if local_column.nullable:
kwargs['validators'].append(validators.Optional())
else:
kwargs['validators'].append(validators.Required())
if prop.direction.name == 'MANYTOONE':
return QuerySelectField(widget=form.ChosenSelectWidget(),
**kwargs)
......@@ -110,6 +115,9 @@ class AdminModelConverter(ModelConverter):
model,
column))
if not column.nullable:
kwargs['validators'].append(validators.Required())
# Apply label
kwargs['label'] = self._get_label(prop.key, kwargs)
......
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