如何避免在模型版本上触发唯一验证器?

时间:2014-03-26 23:50:26

标签: sqlalchemy flask flask-sqlalchemy wtforms flask-wtforms

我使用Flask,SQLAlchemy和WTForms。我的模型对象中有许多属性,标记为uniquenullable=False。这在数据库中创建新行时工作正常,但是当我尝试编辑现有对象时,WTForms上的验证器失败并带有

{'aproperty': [u'Already exists.']}

如何在不更改数据模型的情况下进行此验证?

更新

documentation之后对我毫无用处。

1 个答案:

答案 0 :(得分:1)

您需要将现有记录与表单相关联。否则,验证者无法知道您是否正在更新现有记录而不是创建新记录。像下面这样的东西可以做到这一点:

current_obj = ...
form = MyForm(request.form, obj=current_obj)
form.validate_on_submit():
    form.populate_obj(current_obj)