Google App Engine : 모델 무결성 제약 조건?
-
19-09-2019 - |
문제
전자 상거래 사이트의 항목을 나타내는 데이터 스토어 모델이 있습니다.
class Item(db.Model):
CSIN = db.IntegerProperty()
name = db.StringProperty()
price = db.IntegerProperty()
quantity = db.IntegerProperty()
무결성 제약을 시행 할 수있는 방법이 있습니까? 예를 들어, 나는 quantity
0보다 작은 것으로 설정되지 않습니다.
해결책
그만큼 속성 생성자 'Validator'라는 인수가있는 함수를 지정할 수 있습니다. 이 함수는 유효성이 유효하지 않은 경우 하나의 인수 인 값을 가져 와야하며 예외를 제기해야합니다. 예를 들어:
def range_validator(minval, maxval):
def validator(v):
if (minval is not None and v < minval) or (maxval is not None and v > maxval):
raise ValueError("Value %s outside range (%s, %s)" % (v, minval, maxval))
return validator
class Item(db.Model):
CSIN = db.IntegerProperty()
name = db.StringProperty()
price = db.IntegerProperty()
quantity = db.IntegerProperty(validator=range_validator(0, None))
이 예제는 중첩 된 기능을 사용하여 일반 목적 유효성 검사기를 정의합니다. 물론보다 특별한 목적 유효성 검사기를 작성하려면 간단한 기능을 사용할 수 있습니다.
제휴하지 않습니다 StackOverflow