Найти - Пользователи
Полная версия: WTForms-Alchemy (Flask) Ошибка валидации даты
Начало » Web » WTForms-Alchemy (Flask) Ошибка валидации даты
1
kaper156
Здравствуйте, очередной глупый вопрос.
Имею модель описаную с помощью sqlalchemy_defaults. При попытке валидации формы валится и кричит:
Error in the Дата field - Not a valid date value
Внимание, впорос:
Где прописать формат даты?
планируется вводить в формате ‘%d.%m.%Y’
kaper156
Прикрепляю немного исходников
models.py
from app import db
from sqlalchemy import Integer, String, Text, Float, Date
from sqlalchemy_defaults import make_lazy_configured, Column
make_lazy_configured(db.mapper)
# Мероприятие
class Olympiad(db.Model):
    __tablename__ = 'Olympiad'
    id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
    name = Column(String, label='Название', nullable=False)
    date = Column(Date, label='Дата', nullable=False)
    description = Column(String, label='Описание')
    def __init__(self, name, date, description=None):
        self.name = name
        self.date = date
        self.description = description

forms.py
from app.models import Olympiad
from flask.ext.wtf import Form
from wtforms_alchemy import model_form_factory
ModelForm = model_form_factory(Form)
class OlympiadForm(ModelForm, Form):
    class Meta:
        model = Olympiad

view.py
@app.route('/olympiads/', methods=['POST', 'GET'])
def olympiads():
    instances = list()
    olympiads = db.session.query(Olympiad).limit(OBJECT_PER_PAGE)
    for olympiad in olympiads:
        instances.append((olympiad, OlympiadForm()))
    editor = OlympiadForm()
    if request.method == 'POST' and editor.validate():
        olympiad = Olympiad(name=editor.name.data,
                            date=editor.date.data,
                            description=editor.description.data)
        db.session.add(olympiad)
        db.session.commit()
        flash('Олимпиада добавлена! \n %s: %s' % (olympiad.id, olympiad.name), 'info')
    flash_errors(editor)
    return render_template('olympiad.html', breadcrumbs=breadcrumbs[:2], olympiads=instances, form=editor)
4kpt_IV
date_format
4kpt_IV
Это

if request.method == 'POST' and editor.validate():

на

if form.validate_on_submit():

Еще. Разберитесь, зачем нужен populate_obj

obj = MyModel.query.get(1)
form = MyForm(obj=obj)
form.populate_obj(obj)
form.validate()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB