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