我是Turbogears 2.3.3和Toscawidgets的新手2.有人能告诉我如何根据id设置默认值吗?
网址:... /查看?id = 2
FormWidget :
FruitForm(twf.Form):
class child(twf.TableLayout):
fruit=twf.SingleSelectField(options=DBsession.query(Fruit.id, Fruit.name)
模型:水果
id,name
控制器:
@expose ('view')
def view(self, id)
fruit=DBSession.query(Fruit).get(id)
return dict(page='view', value=fruit, form=FruitForm(action='/save')
模板:
<div>${form.display(value=value)}</div>
问题:
当url是/ view?id = 2时,在SingleSelectField中如何显示id为2的水果?
感谢。
答案 0 :(得分:1)
您的代码段中可能存在两个错误:
第一个是加载options
而不使用Deferred
导致查询在应用程序启动时执行(导入表单时),而不是在显示表单时可能不是什么你想要的。
第二个是您将水果本身设置为表单值,而表单中的值应该是子值的字典(因为表单实际上有多个值,每个子项一个)。
我在Runnable上创建了一个可行的解决方案的简短示例:http://runnable.com/U-tO4xSN7Ch6wWS7/turbogears-forms-fill-singleselect-value-for-pythonpos