A couple ways to do this, but nothing that's really sanctioned by the
webpy library. First, you can reach into the form and manipulate the
dropdown in your page handler:

def GET(self):
  f = stream_form()
  f.files.args = getMpegFiles()

And then (obviously) redo this within the POST function.  You could
also set it as an instance member and put it in the initializer to
reduce duplication. So, something like:

class mypage:
  def __init__(self):
    self.form = stream_form()
    f.files.args = getMpegFiles()

And then just access "self.form" in your handlers. This works because,
unlike some other web frameworks such as cherrypy, webpy initializes
the class on each request. They aren't long running singletons.

The other way is to just define your form within the page handler at
run time -- again this could go in the initializer:

class mypage:
  def __init__(self):
    self.form = form.Form(
      form.Dropdown(
        'input',
        [('0','Analog Tv'),('1', 'S-Video'),('2', 'Files')],
        description="Input Source:",
        value="1",
        onchange="showChannels()"
      ),
      form.Dropdown(
        'channels',
        channelList(),
        description="Channel:",
        value="5"
      ),
      form.Dropdown(
        'files',
        getMpegFiles(),
        description="Files"
      )
    )

Hope that helps.

Cheers,
Justin


On Nov 4, 3:15 pm, Pyther <[email protected]> wrote:
> Hello
>
> Here is my code:http://paste.pocoo.org/show/286254/
>
> Basically I have this:
>
> form.Dropdown(
>         'files',
>         getMpegFiles(),
>         description="Files"
>     )
>
> Where getMpegFiles() returns a list of filenames. It seems as if the
> dropdown get rendered on the first run and then won't get updated
> until webpy restarts. How can I force the function to be called on
> every page load? Ideally I would like to allow users to add files to a
> directory and then the list get updated.
>
> Thanks,
> pyther

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" 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/webpy?hl=en.

Reply via email to