> This problem really drive me crazy, anybody could help me. > how could the kid receive variable and data from control.py~~? > > On Wed, Apr 8, 2009 at 10:43 PM, 跑步鱼 <[email protected]> wrote: > >> Hi: >> >> I am a fresh in Turbogear. >> >> After finish the 20-min wiki, I try to add a upload function to the >> wiki. well, I don't understand how the data could be sent to kid. I >> have search previous discuss about this issu.get the solution as >> following, But I don't know how can I get the data in kid template. >> what should I add in kid. >> >> I tried to add like this:<p py:content="upload_form()">upload</p>, <p>$ >> {upload_form}</p>,but it seems not work. >> >> Could you explain the machanism of the data transform between kid and >> control.py >> >> In this case, what should I write in the template. >> Thank you >> >> >> ----------------------------the code in control.py >> ------------------------------------ >> from turbogears import controllers, expose, widgets, validators, >> validate >> from file_fields.widgets.file_field import FileField, FileValidator >> >> # ---- Constants ---- >> >> BUFFER_SIZE = 8192 >> >> # ---- Widgets / Forms ---- >> >> class MediaUploadFields(widgets.WidgetsList): >> title = widgets.TextField( >> label=_(u"File Title"), >> ) >> mediafile = FileField( >> label=_(u"Video File"), >> ) >> >> # ---- Form Validators ---- >> >> class MediaUploadSchema(validators.Schema): >> title = validators.UnicodeString(max=256, strip=True), >> mediafile = FileValidator(not_empty=True) >> >> # ---- Forms ---- >> >> upload_form = widgets.TableForm( fields=MediaUploadFields(), >> validator=MediaUploadSchema() ) >> >> # ---- Controllers ---- >> >> class Root(controllers.RootController): >> @expose(template=".templates.welcome") >> def index(self): >> return dict( >> upload_action = './upload', >> upload_form = upload_form, >> upload_submit_text = 'Upload Media', >> upload_value = dict(), >> ) >> >> @expose('.templates.upload', format='xml', content_type="text/ >> xml") >> @validate(form=upload_form) >> def upload(self, title=None, mediafile=None): >> >> # Copy the file somewhere useful >> fp = open('/tmp/uploaded_file', 'wb') >> buf = mediafile.file.read(BUFFER_SIZE) >> while buf: >> fp.write(buf) >> buf = mediafile.file.read(BUFFER_SIZE) >> fp.close() >> >> return dict( >> filename = mediafile.name, >> filesize = mediafile.size, >> md5 = mediafile.md5, >> mimetype = mediafile.type, >> )
Maybe my_widget_instance.display( ) is what you are looking for? See http://docs.turbogears.org/1.0/WidgetsOverview for more details. HTH, Daniel -- Psss, psss, put it down! - http://www.cafepress.com/putitdown --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/turbogears?hl=en -~----------~----~----~----~------~----~------~--~---

