我试图创建一个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  

问题是,查询获取生成,但实际上从未访问数据库。用户变量只包含生成的查询,而不是查询结果。我该如何去修复呢?非常感谢。

有帮助吗?

解决方案

它应该是:

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

也:是它User.user_name或User.username

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top