그것은 당신이 사용 소쿠리 선택 필드의 values
을 설정을 연기 할 수있는 서버 측의 선택 값 채울 확실히 쉽다 :
그러나
@colander.deferred
def deferred_choices_widget(node, kw):
choices = kw.get('choices')
return deform.widget.SelectWidget(values=choices)
@colander.deferred
def deferred_default(node, kw):
return kw['default']
class Schema(colander.Schema):
pepper = colander.SchemaNode(
colander.String(),
default=deferred_default,
widget=deferred_choices_widget,
)
def view(request):
# choices = (
# ('', '- Select -'),
# ('habanero', 'Habanero'),
# ('jalapeno', 'Jalapeno'),
# ('chipotle', 'Chipotle')
# )
choices = load_data_from_some_api()
schema = Schema().bind(choices=choices, default='jalapeno')
form = deform.Form(schema, buttons=('submit',))
return self.render_form(form)
, 그것은 빠르게 만들 수를, 아마도 일종의 캐시를 원할 것입니다. 일반적으로 좋은 패턴은
Deform example
안녕 미코의 값을 채 웁니다 이것이 내가 끝내는 것입니다. 참고로, 데이터는 다른 API의 초기 값 이었지만 그 주위에 방법을 발견했습니다. 감사. – silviud