基于两个或多个条目验证 WTform 的最佳方法是什么?即在下面的表格中,我想验证数据库中不存在具有提供的名称和地址的公司。
class CompanyForm(FlaskForm):
name=StringField('Company Name', validators=[DataRequired()])
address=StringField('Street Address', validators=[DataRequired()])
Run Code Online (Sandbox Code Playgroud)
像这样的东西...
def validate_name(self, name, address):
company = Company.query.filter_by(name=name.data, address=address.data).first()
if company is None:
raise ValidationError('This company already exists in our database.')
Run Code Online (Sandbox Code Playgroud)
我通读了关于 SO 的文档和类似的问题,但我仍然无法弄清楚。
是否可以使用不同的函数而不使用 sqlalchemy 中的“session”类?为什么或者为什么不?我在这里找到的答案:/sf/answers/2500288941/似乎它应该有效,但对我不起作用。请参阅下面的示例:
class Example(db.Model):
title = db.Column(db.String(140))
extra = db.Column(db.String(140))
e1 = Example(title='foo', extra='bar')
e2 = Example(title='hoo', extra='bar')
db.session.add_all([e1, e2])
db.session.commit()
test = []
for value in Example.query.distinct(Example.extra):
test.append(value.extra)
print(len(test))
...2
Run Code Online (Sandbox Code Playgroud)
结果应该是1而不是2。查看distinct()的文档,我觉得这应该可行。我缺少什么?