2016-03-29 14 views
0

Şu anda TurboGears2 ve ToscaWidgets2 ile bir proje üzerinde çalışıyor. Birkaç statik alan, isim, tarih ve iletişim bilgileri içeren bir form kurulumum var. Bu formun içinde, kullanıcının GrowingGridLayout numaralı telefona dinamik olarak çok sayıda giriş ekleyebildiği bir alt form ekledim. Biçim, düzeni ve gönderim bilgileri iyi ve güzel ancak, kaydetme için iletildikten sonra GrowingGridLayout bilgisini nasıl yakalayacağımı anlamakta zorlanıyorum. Ana noktaları tahmin et, formda kaç girişin bulunduğunu nasıl bilebilirim? Eğer sözlükler listesi olmalıdır Destination parametre veri almalısınız forma karşı @validate s denetleyici varsaToscaWidgets2 GrowingGridLayout'tan Verileri Yakalama

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 = "" 

cevap

0

:

formu için kod Dahil.

Ayrıca iki iç içe geçmiş formunuz olduğunu fark ettim, bu TW2'yi oldukça fazla karıştırabilecek bir şey. Ne yapmak istediğin muhtemelen OnrampFormCustomisedForm numaralı ürüne sahip ve childTableLayout numaralı ürüne sahip. http://turbogears.readthedocs.org/en/latest/cookbook/TwForms.html#displaying-forms

PS bakınız: need_by_date.default = current_date + datetime.timedelta(days=30) her zaman 30 gün aslında modül artık ithal ve edildiğinde hesaplanan alır bir current_date = datetime.date.today() sınıf değişkeni depolamak gibi sunucu başladığında dönmek unutmayın.

default = Deferred(lambda: datetime.date.today() + datetime.timedelta(days=30)) numaralı telefonu kullanabilmek için