2009-12-22 3 views
1

Formencode 스키마에 사용할 간단한 고유 사용자 이름 함수를 만들려고합니다. 다음은 함수입니다 :Sqlalchemy 쿼리가 커밋되지 않습니다.

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

이 있어야한다 : 또한

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

: 그것은 User.user_name 또는 User.username입니까?

+0

빠른 답변을 보내 주셔서 감사합니다.이 동작에 대해 설명하는 문서의 위치를 ​​가르쳐 주시겠습니까? 다시 한번 감사드립니다. – Marc

+0

http://www.sqlalchemy.org/docs/05/reference/orm/query.html#sqlalchemy.orm.query.Query.first – zeemonkee

관련 문제