我使用Flask,SQLAlchemy和WTForms。我的模型对象中有许多属性,标记为unique
和nullable=False
。这在数据库中创建新行时工作正常,但是当我尝试编辑现有对象时,WTForms上的验证器失败并带有
{'aproperty': [u'Already exists.']}
如何在不更改数据模型的情况下进行此验证?
更新
documentation之后对我毫无用处。
答案 0 :(得分:1)
您需要将现有记录与表单相关联。否则,验证者无法知道您是否正在更新现有记录而不是创建新记录。像下面这样的东西可以做到这一点:
current_obj = ...
form = MyForm(request.form, obj=current_obj)
form.validate_on_submit():
form.populate_obj(current_obj)