2016-07-19 4 views
2

이 같은 모델이검증 SQLAlchemy의 관계는

widget = Widget(obj_id=5) 

validate_obj_id가 발광을하지만, validate_obj은하지 않습니다. 글자가 인 것을 validate_obj_id에서 찾아보고 객체를 validate_obj으로 전달하는 것만으로는 부족합니다. 한 가지 기능으로 두 필드의 유효성을 검사 할 수있는 방법이 있습니까?

+0

성능이 문제가되지 않는 한, 나는 개인적으로 정확하게 때문에 두 필드를 처리하는 trickiness의 항상 대신 외부 키의 관계에서 작동하는 것을 선호 데이터베이스의 동일한 열에 영향을 미치지 만 파이썬에서는 별도로 관리됩니다. – univerio

+0

좋은 지적입니다. 일부 이상한 물건을 않는 일부 레거시 코드를 포함하여이 부분적으로 구현하려면 노력하고있어, obj_id 설정을 통해 모든 obj_id 설정을 업데이트하고 싶지는 확실하지 않습니다. – Plasma

답변

3

당신은 '설정'이벤트를 사용할 수 있습니다

from sqlalchemy import event 

@event.listens_for(Widget.obj, 'set', retval=True) 
def validate_obj(target, value, oldvalue, initiator): 
    print('event fired for validate_obj') 
    return value