【发布时间】:2017-07-25 06:25:12
【问题描述】:
我没有成功使用 model_form 在我的模型中设置日期值:
@app.route('/admin/article/<int:id>', methods=['PUT'])
@login_required
def admin_update(id):
ArticleForm = model_form(Article, Form)
article = Article.query.get_or_404(id)
form = ArticleForm(request.form, article)
if form.validate():
form.populate_obj(article)
db.session.commit()
return jsonify(status='success', article=article.as_dict()), 200
# Invalid
return jsonify(status='error', errors=form.errors), 400
我的模型如下所示:
class Article(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(255), index=True)
lead = db.Column(db.Text)
body = db.Column(db.Text)
date = db.Column(db.DateTime)
def __init__(self, id=None, title=None, lead=None, body=None, date=None):
self.id = id
self.title = title
self.lead = lead
self.body = body
self.date = date
def as_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
我将文章导出为 dict,因此我将其转换为 JSON。我的基于 JS 的 WYSIWYG 编辑器在 XHR 请求中转储所有数据(标题/潜在客户/正文/日期)并将其发送到上述 API 点。
我从这个电话中得到的回应:
{
"errors": {
"date": [
"Not a valid datetime value"
]
},
"status": "error"
}
我知道我尝试为 Sqlalchemy DateTime 设置一个字符串(当前格式 dd-mm-yyyy 28-03-2017),但我该如何转换呢?我可以将格式调整为任何需要的格式,但我想坚持使用model_form 的简单视图。
使用的工具:
- 烧瓶
- flask_wtf.Form
- wtforms_sqlalchemy.orm.model_form(没有 wtforms.ext.sqlalchemy.orm)
【问题讨论】:
标签: python flask sqlalchemy flask-sqlalchemy wtforms