Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Web
  • » WTForms-Alchemy (Flask) Ошибка валидации даты [RSS Feed]

#1 Фев. 25, 2016 16:36:22

kaper156
Зарегистрирован: 2015-06-06
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

WTForms-Alchemy (Flask) Ошибка валидации даты

Здравствуйте, очередной глупый вопрос.
Имею модель описаную с помощью sqlalchemy_defaults. При попытке валидации формы валится и кричит:

Error in the Дата field - Not a valid date value
Внимание, впорос:
Где прописать формат даты?
планируется вводить в формате ‘%d.%m.%Y’

Офлайн

#2 Фев. 25, 2016 17:13:20

kaper156
Зарегистрирован: 2015-06-06
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

WTForms-Alchemy (Flask) Ошибка валидации даты

Прикрепляю немного исходников
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)

Офлайн

#3 Фев. 25, 2016 17:21:36

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

WTForms-Alchemy (Flask) Ошибка валидации даты

Офлайн

#4 Фев. 25, 2016 17:25:34

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

WTForms-Alchemy (Flask) Ошибка валидации даты

Это

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()

Офлайн

  • Начало
  • » Web
  • » WTForms-Alchemy (Flask) Ошибка валидации даты[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version