Sqlalchemy查询不提交

时间:2009-12-22 05:59:17

标签: python sqlalchemy formencode

我正在尝试创建一个简单的唯一用户名函数,以便在Formencode架构中使用。这是功能:

class UniqueUsername(formencode.FancyValidator):   
    def _to_python(self, value, state):  
        user = DBSession.query(User.user_name).filter(User.username==value)  
        if user is not None:  
            raise formencode.Invalid(
            'That username already exists', value, state)  
        return value  

问题是查询已生成但从未实际访问过数据库。用户变量只包含生成的查询,而不是查询结果。我该如何解决这个问题?非常感谢。

1 个答案:

答案 0 :(得分:4)

应该是:

user = DBSession.query(User.user_name).filter(User.username==value).first()

另外:是User.user_name还是User.username?