:WTForms 양식 필드 기본값을 억제하는 간단한 방법이 있습니까? 나는 데이터베이스에서 데이터를 표시 할 WTForms 양식을 사용할 때마다
sql = "SELECT * FROM rolodex WHERE rolodex_id = " + rolodex_id
cursor = mdb_connect("DictCursor")
cursor.execute(sql)
row = cursor.fetchone()
form = RolodexEntry(**row)
return bottle.template('entry',rolodex_id=rolodex_id,form=form)
(모든 양식 필드가 TextField의입니다)
비어 NULL 데이터베이스 필드 값은 "없음"으로 표시됩니다. 나는 그들이 단지 비어 있기를 바란다. 이 문제를 해결하는 몇 가지 방법을 생각할 수 있지만 None이 아닌 빈 문자열로 Textfield의 기본값을 설정하는 WTForms 승인 방법이 있는지 궁금합니다.
firstname = TextField('First Name',[validators.length(max=40)], default="")
:
<p style='font-weight: bold; color: blue; margin-left: auto; margin-right: auto; width: 50%'>
% if form.firstname.data:
{{form.firstname.data}}
% end
% if form.lastname.data:
{{form.lastname.data}}
% end
</p>
나는 필드 정의의 기본 속성을 변경 시도 :
병 템플릿은 나에게 사례별로이 문제를 해결하는 간단한 경우 다소 지루한 방법을 제공 그러나 이것은 아무 것도하지 않았다. 필드가 데이터베이스에서 비어 있으면 form.firstname.data는 여전히 None
으로 표시됩니다.
안녕하세요. 회신 해 주셔서 감사합니다. 그러나 이것이 도움이되는 방식을 따르지는 않습니다. 필자의 경우 데이터베이스에는 빈 필드와 NULL 필드가 모두 포함되어 있습니다 (즉, 일부 데이터베이스 필드는 이미 ""로 설정되어 있습니다). 어느 경우이든, form.field_name.data는 결과 HTML 페이지 (즉, N-o-n-e 문자)에'None'으로 인쇄합니다. 이걸 보면'row'의 거짓 값은'None'으로 출력 될 것입니다. 데이터베이스의 값이'False' 인 경우 필드를 공백으로 두는 것을 기본값으로하고 싶기 때문에 필드 값을 사전에 미리 설정해도 도움이되지 않습니다 (다음 주석 참조). – pgoetz
사실 필드 중 하나를 명시 적으로 ""(빈 문자열) :'row [ 'cellphone'] = ""'폼에 전달하기 전에'form = RolodexEntry (** row)' 그것은 여전히 HTML 파일에'None'으로 출력됩니다. 이해가 안되는 이유는 이것이'default' 필드 속성에 의해 다루어지지 않는 이유입니다. – pgoetz
실험 - 같은 것을 다시 할 때 ('row [ 'cellphone'] = ''')를 설정하고'firstname = TextField ('First Name', [validators.length (max = 40)]를 설정하면 어떻게됩니까? default = "Test string")'그리고 무엇이 표시되는지보십시오. 이것은'default'가 처리 중인지 확인합니다. 빈 문자열을 '없음'또는 문자열로 취급하는지 확인하고 싶습니다. – Ewan