WTForms에서 매우 간단한 작업이라고 생각되는 문제가 있습니다. 필드에 입력 된 데이터가 있는지 확인하십시오. 데이터 메서드는 필드 형식에 따라 다른 결과를 반환하는 것으로 보입니다. 따라서이를 테스트하기 위해 일반적으로 사용할 수는 없습니다.WTForms : 필드가 채워 졌는지 테스트하십시오.
플라스크 (Flask) 앱에서 사용하고 있습니다. 내 양식 선언, 나는이 :
title = StringField('Title')
signed = RadioField('Signed?', choices = [('Y','yes'),('N','no')])
을 그리고, 내 views.py에서, ") (form.is_submitted 경우"후 :
print('Title raw_data is %r' % form.title.raw_data)
print('Title data is %r' % form.title.data)
if form.title.raw_data:
print ("Title raw data is True")
if form.title.data:
print ("Title data is True")
print('Signed raw_data is %r' % form.signed.raw_data)
print('Signed data is %r' % form.signed.data)
if form.signed.raw_data:
print ("Signed raw data is True")
if form.signed.data:
print ("Signed data is True")
나는 이것을 실행하고 어느 필드를 작성하는 경우 형태로, 내가 얻을 :
입니다Title raw_data is ['']
Title data is ''
Title raw data is True
Signed raw_data is []
Signed data is 'None'
Signed data is True
이 form.title.data는 빈 문자열을 반환합니다, 그래서 테스트를 위해 이것을 사용할 수 있습니다; form.signed.data는 None이 아닌 'None'문자열을 반환하므로 "if form.signed.data"테스트가 실패합니다. 따라서 빈 목록 인 False를 반환하는 form.signed.raw_data를 사용해야합니다. form.title.raw_data는 빈 문자열을 반환하지 않기 때문에 빈 문자열로 구성된 목록을 반환합니다. 즉, 이 아닌이 아닌 경우
방법이 있습니까? 어떤 종류의 필드가 채워 졌는지 테스트 할 수 있습니까? 아니면 필드의 종류에 따라 데이터와 raw_data 사이를 전환해야합니까? 반 직관적이며 혼란 스럽습니다.
, 당신은 = 빈 'FALSE'를 설정할 수 있습니다. – joshlsullivan
죄송합니다. 어떤 문서에서이 내용을 찾을 수 없습니다 -이 작업의 수행 대상과 그 출처를 명확히 할 수 있습니까? Appengine 확장에 "allow_blank"및 "blank_text"가 있지만 Appengine을 사용하지 않습니다. – user1235777
죄송합니다. 그것은 장고 기능입니다. WTF를 사용하면 유효성 검사기를 사용할 수 있습니다. 여기에서 문서를 살펴보십시오. [http://wtforms.readthedocs.io/en/latest/validators.html#wtforms.validators.DataRequired](http://wtforms.readthedocs.io/en/latest/validators). html # wtforms.validators.DataRequired). 'forms.py' 파일을 게시 할 수 있다면 더 나은 방향을 제시 할 수 있습니다. – joshlsullivan