데이터베이스 수준에서 SQLFORM 필드에 유효성 검사를 추가하는 방법을 알고 있습니다. 그러나 개인 양식의 수준에서이 작업을 수행 할 수는 없습니다. 이상적으로 저는 기존 SQLFORM을 가지고 다음과 같이 말할 수 있습니다 :web2py 양식에 추가 검증 요구 사항을 추가 하시겠습니까?
form.field.requires = # some extra validator
이 같은 것이 있습니까?
데이터베이스 수준에서 SQLFORM 필드에 유효성 검사를 추가하는 방법을 알고 있습니다. 그러나 개인 양식의 수준에서이 작업을 수행 할 수는 없습니다. 이상적으로 저는 기존 SQLFORM을 가지고 다음과 같이 말할 수 있습니다 :web2py 양식에 추가 검증 요구 사항을 추가 하시겠습니까?
form.field.requires = # some extra validator
이 같은 것이 있습니까?
먼저 web2py 유효성 검사기는 테이블 정의의 일부로 지정되어 있어도 데이터베이스의 수준에 있지 않습니다. 항상 양식 수준에서 적용됩니다.
SQLFORM 모두가 걸릴 양식 필드를 구축하기 위해 사용하는 INPUT()
, SELECT()
및 TEXTAREA()
헬퍼는 하나의 검증 또는 유효성 검사기의 목록이 될 수있는 속성을 "이 필요합니다." SQLFORM은 양식을 만들 때 데이터베이스 테이블 필드의 유효성 검사기를 연결된 양식 위젯에 자동으로 복사합니다.
def myform():
db.mytable.myfield.requires = IS_IN_SET(['a', 'b', 'c'])
form = SQLFORM(db.mytable).process()
return dict(form=form)
이 SQLFORM 연관된 "myfield"위젯 db.mytable.myfield에서 유효성 검사기를 복사합니다 : 그래서, 가장 쉬운 방법은 바로 SQLFORM를 작성하기 전에 데이터베이스 테이블 필드에 대한 검증을 지정하는 것입니다 의 형태의.
폼이 생성 된 후에 또한 위젯 직접 검사기를 추가 할 수있다 (그러나이 처리되기 전에)
form.element('input[name=myfield]')['requires'] = IS_IN_SET(['a', 'b', 'c'])
: 필드 위젯 액세스 할
form = SQLFORM(db.mytable)
form.custom.widget.myfield['requires'] = IS_IN_SET(['a', 'b', 'c'])
form.process()
다른 방법을