2012-09-28 3 views
2

저는 SQLAlchemy를 처음 사용합니다. 다음SqlAlchemy에서 사용자 지정 메시지를 반환하면 데코레이터가 무효화됩니다.

class User(db.Model): 
    ... 
    email = db.Column(db.String(255)) # don't worry about uniqueness for now 

    @validates('email') 
    def validate_email(self, key, address): 
    assert '@' in address # of course a regex is better, I know 
    return address 

이상 : : 내가 원하는 것을

try: 
    user = User('fidel#cuba.cu') 
    db.session.add(user) 
    db.session.commit() 
except Exception as e: 
    print e.message # returns an empty string '' 

이 할 :

내가 SQLAlchemy의 데코레이터를 사용하여 사용자 정의 @validates 기능 model 매우 간단한했습니다

... 
except Exception as e: 
    # json_error is a custom function of my own 
    return json_error(e.message, 400) 

그래서 질문은 : 사용자 정의 SQLAlchemy에서 사용자 지정 유효성 검사 규칙에 오류 메시지가 있습니까? 아마도 메시지가 들어있는 사용자 지정 Exception을 생성해야합니까?

답변

3

어설는 두 번째 인수를 취할 수 - 메시지를 사용하는 주장이 실패 할 경우 :

class User(db.Model): 
    # ... snip ... 

    @validates('email') 
    def validate_email(self, key, address): 
    assert '@' in address, "Invalid email" 
    return address 
관련 문제