Oh.........
I have use dir(doc) here, and got its attributes, now I know how to
use it!
But I still think the documentation should be more detail

On 12月27日, 上午3时31分, Chen Houwu <[email protected]> wrote:
> 1. thanks for the reply, for the second question, I have tried your
> solution, and it works!
>
> 2. for the first question. Here is my code
> ------------------------------------------------------
> class MyController(BaseController)
>     class DocForm(TableForm):
>         class fields(WidgetsList):
>             name = TextField(validator=NotEmpty(strip=True))
>             doc=FileField()
>             description = TextArea(rows=3, cols=25)
>
>     @expose('docman.templates.add_doc')
>     @require(not_anonymous())
>     def add_doc(self, **kw):
>         tmpl_context.form=self.FileForm(action=tg.url
> ('add_doc_handler') )
>         tmpl_context.dir=DBSession.query(Directory).get(self.dir_id)
>         return
>
>     @validate(form=DocForm(), error_handler=add_doc)
>     @expose()
>     @require(not_anonymous())
>     def add_doc_handler(self, doc, name, description):
>        #*******************************
>        #how can I use the 'doc' parameter? Is there any description?
>        #*********************************
>    -----------------------------------------------------
>
> I find the following documentation from the formencode website:
>
> -----------------------------------------------
> class formencode.validators.FileUploadKeeper(*args, **kw)¶
>
>     Takes two inputs (a dictionary with keys static and upload) and
> converts them into one value on the Python side (a dictionary with
> filename and content keys). The upload takes priority over the static
> value. The filename may be None if it can’t be discovered.
>
>     Handles uploads of both text and cgi.FieldStorage upload values.
>
>     This is basically for use when you have an upload field, and you
> want to keep the upload around even if the rest of the form submission
> fails. When converting back to the form submission, there may be extra
> values 'original_filename' and 'original_content', which may want to
> use in your form to show the user you still have their content around.
>
>     To use this, make sure you are using variabledecode, then use
> something like:
>
>     <input type="file" name="myfield.upload">
>     <input type="hidden" name="myfield.static">
>
>     Then in your scheme:
>
>     class MyScheme(Scheme):
>         myfield = FileUploadKeeper()
>
>     Note that big file uploads mean big hidden fields, and lots of
> bytes passed back and forth in the case of an error.
> --------------------------------------------------
> does it mean i can use 'doc.original_filename' and
> 'doc.original_content' here?
>
> On 12月27日, 上午2时48分, "Jorge Vargas" <[email protected]> wrote:
>
> > On Fri, Dec 26, 2008 at 12:39 PM, Chen Houwu <[email protected]> wrote:
>
> > > Current I am develop some web application with TG2, but I can't solve
> > > the follown problem:
>
> > > 1. How to use FileFields?
>
> > This works exactly was any other field, is your problem on the
> > controller or the rendering part?
> > if it's at the controller part you need, a "special" controller to
> > upload the file, go a search of the group as several implementations
> > have been posted. Including mine.
>
> > > 2. How to give a TextField a default value?
>
> > you pass the value at render time. For example if you have a widget,
> > named "widget" and it has a "case_id" field the following code will
> > set it to "
>
> > ${tmpl_context.widget(dict(case_id=value))}
>
> > > I can't find any example about them.
> > > Event from the source code, I can't get suffient clue.
>
> > > Thanks very much.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to