首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自GrowingGridLayout的ToscaWidgets2捕获数据

来自GrowingGridLayout的ToscaWidgets2捕获数据
EN

Stack Overflow用户
提问于 2016-03-29 23:48:19
回答 1查看 43关注 0票数 0

目前正在与TurboGears2ToscaWidgets2合作一个项目。我有一个表单设置,其中包含一些静态字段、姓名、日期和联系人信息。在这个表单中,我添加了一个子表单,用户可以在其中动态地在GrowingGridLayout中添加大量条目。表单、布局和提交信息都很好,但是一旦信息被传递保存,我就很难弄清楚如何从GrowingGridLayout中捕获信息。我猜要点是,我如何知道表单中包含了多少条目?

包含表单的代码:

代码语言:javascript
复制
class OnrampForm(twf.Form):
    title = "Onramp Submission Form"

    class child(twd.CustomisedTableForm):
        onramp_name = twf.TextField(validator=twc.Required)

        class Destinations (twd.GrowingGridLayout):
            environment = twf.SingleSelectField(label='Environment', validator=twc.Validator(required=True), options=[<OPTIONS>])
            location = twf.SingleSelectField(validator=twc.Required, label='Location', options=[<OPTIONS>])
            jms_type = twf.SingleSelectField(label='JMS Type', validator=twc.Validator(required=True), options=[<OPTIONS>])
            subscription_type = twf.SingleSelectField(label='Subscription Type', validator=twc.Validator(required=True), options=[<OPTIONS>])

        onramp_status = twf.SingleSelectField(prompt_text='Status', options=['Initial Release', 'Update'], validator=twc.Required)
        current_date = datetime.date.today()
        need_by_date = twd.CalendarDatePicker(validators=[twc.Required, twc.DateTimeValidator])
        need_by_date.default = current_date + datetime.timedelta(days=30)
        organization = twf.TextField(validator=twc.Required)
        poc_name = twf.TextField(validator=twc.Required)
        poc_email = twf.EmailField(validator=twc.EmailValidator)
        poc_phone = twf.TextField(validator=twc.Required)
        poc_address = twf.TextField()
        poc_city = twf.TextField()
        poc_state = twf.TextField()
        onramp_form = twf.FileField()
        submit = twf.SubmitButton(value="Submit")

    action = "/print_args"
    submit = ""
EN

回答 1

Stack Overflow用户

发布于 2016-03-30 23:23:51

如果您针对表单控制@validate,则应该将数据放入Destination参数中,该参数应该是一个字典列表。

另外,我刚刚注意到你有两个嵌套的表单,这可能会让TW2非常困惑。您想要做的可能是让OnrampForm继承CustomisedForm,然后让child继承TableLayout。请参阅http://turbogears.readthedocs.org/en/latest/cookbook/TwForms.html#displaying-forms

PS:请注意,在服务器启动后30天内,need_by_date.default = current_date + datetime.timedelta(days=30)将始终返回,因为您实际存储的是一个current_date = datetime.date.today()类变量,该变量在导入模块时计算出来,并且不会更多。

您应该使用default = Deferred(lambda: datetime.date.today() + datetime.timedelta(days=30))来实现这一点

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36289065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档