1

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  

問題は、クエリが生成されるが、実際にはデータベースにヒットしないことです。ユーザー変数には、クエリ結果ではなく、生成されたクエリが含まれているだけです。これを修正するにはどうすればよいですか?本当にありがとう。

4

1 に答える 1

4

そのはず:

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

また、それは User.user_name または User.username ですか?

于 2009-12-22T12:11:36.837 に答える