[PYTHON] WTForms SelectField의 기본값을 어떻게 설정합니까?
PYTHONWTForms SelectField의 기본값을 어떻게 설정합니까?
SelectField의 기본 값을 WTForms로 설정하려고하면 'default'매개 변수에 값을 전달합니다.
class TestForm(Form):
test_field = SelectField("Test: ", choices=[(1, "Abc"), (2, "Def")], default=2)
나는 또한 다음을 시도했다.
class TestForm(Form):
test_field = SelectField("Test: ", choices=[(1, "Abc"), (2, "Def")], default=(2, "Def"))
기본 선택 필드를 "Def"로 설정하지 마십시오. 이것은 TextField와 같은 다른 종류의 필드에서도 작동합니다. 어떻게 SelectField의 기본값을 설정합니까? '
해결법
-
==============================
1.게시 한 첫 번째 방법은 정확하며 내게 적합합니다. 작동하지 않는 유일한 설명은 이전 버전의 WTForms를 실행하고 있다는 것입니다. 1.0.1에서 작동했습니다.
게시 한 첫 번째 방법은 정확하며 내게 적합합니다. 작동하지 않는 유일한 설명은 이전 버전의 WTForms를 실행하고 있다는 것입니다. 1.0.1에서 작동했습니다.
-
==============================
2.이 문제는 Field의 데이터 속성이 WTForms가 이해할 수없는 기본값 (예 : DB 모델 객체 - int가 필요함)을 무시하여 발생한다고 생각합니다. 이것은 생성자에서 폼을 다음과 같이 채운 경우에 발생합니다.
이 문제는 Field의 데이터 속성이 WTForms가 이해할 수없는 기본값 (예 : DB 모델 객체 - int가 필요함)을 무시하여 발생한다고 생각합니다. 이것은 생성자에서 폼을 다음과 같이 채운 경우에 발생합니다.
form = PostForm(obj=post)
폼을 채운 후에 데이터 속성을 수동으로 설정하는 것이 솔루션입니다.
form = PostForm(obj=post) form.category.data = (post.category.id if page.category else 0) # I make 0 my default
-
==============================
3.이를 수행 할 수있는 몇 가지 방법이 있습니다. 첫 번째 코드 스 니펫이 실제로 맞습니다.
이를 수행 할 수있는 몇 가지 방법이 있습니다. 첫 번째 코드 스 니펫이 실제로 맞습니다.
보기에서 동적으로 이렇게하려면 다음을 수행 할 수도 있습니다.
form = TestForm() form.test_field.default = some_default_id form.process()
-
==============================
4.Flask-WTF 0.14.2 사용자가 여기 있습니다. 이 대답은 나와 비슷한 문제가있는 사람을위한 것입니다.
Flask-WTF 0.14.2 사용자가 여기 있습니다. 이 대답은 나와 비슷한 문제가있는 사람을위한 것입니다.
기본적으로 이전 솔루션은 form.validate_on_submit ()에서 제대로 작동하지 않습니다.
form.test_field.data를 설정하면 실제로 페이지가로드 될 때 기본값이 변경되지만 validate_on_submit (브라우저의 사용자 변경이 적용되지 않음) 후에도 데이터는 동일하게 유지됩니다.
form.test_field.default를 설정하면 form.process ()를 호출하면 페이지가로드 될 때 값이 변경되지만 validate_on_submit은 실패합니다.
새로운 방법은 다음과 같습니다.
class TestForm(Form): test_field = SelectField("Test", choices=[(0, "test0"), (1, "test1")]) @app.route("/test") def view_function(): form = TestForm(test_field=1) if form.validate_on_submit(): ...
-
==============================
5.SelectField를 사용하여 int를 사용할 때 선택 설정입니다. 다음과 같이 작동합니다.
SelectField를 사용하여 int를 사용할 때 선택 설정입니다. 다음과 같이 작동합니다.
test_select = SelectField("Test", coerce=int, choices=[(0, "test0"), (1, "test1")], default=1)
또는:
class TestForm(Form): test_select = SelectField("Test", coerce=int) @app.route("/test") def view_function(): form = TestForm() form.test_select.choices = [(0, "test0"), (1, "test1")] form.test_select.default = 1 form.process()
from https://stackoverflow.com/questions/12099741/how-do-you-set-a-default-value-for-a-wtforms-selectfield by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 다른 파일에서 함수를 호출하는 방법? (0) | 2018.11.11 |
---|---|
[PYTHON] 왜 int는 파이썬에서 3 배의 메모리를 필요로합니까? (0) | 2018.11.11 |
[PYTHON] 동시성, 작업자와 자동 확장 간의 셀러리 차이 (0) | 2018.11.11 |
[PYTHON] 파이썬에서 "3 점"은 숫자처럼 보이는 것을 인덱싱 할 때 무엇을 의미합니까? (0) | 2018.11.11 |
[PYTHON] 파이썬 3.3을 사용할 때 파이썬 패키지 virtualenv가 필요합니까? (0) | 2018.11.11 |