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