It is better to extend the Form class and add a get_input method.

class Form(web.form.Form):
    def get_input(self, name):
        for x in self.inputs:
            if x.name == name:
                return x

With this you can use form.get_input("date" + str(i)).render()

Anand



On Thu, Apr 25, 2013 at 4:28 AM, Steven Brown <[email protected]> wrote:

> I have a few questions, and I'm not even sure how to google for them.  I
> am writing a page with a form.  The form consists of several identical
> lines of fields, where the user can fill in as many or as few lines of
> information as they want.  So, each line is going to have a date field, a
> dropdown indicating a selected option, and a text box for some notes.  Now,
> I'm sure I could implement this by building the python-side form array with
> a loop, where every time through the loop adds another set of fields to the
> list of fields.  My question is, on the HTML side, how should I access them
> to render them?  My first instinct is to just use an eval statement;
> something like
>
> $:for i in range(10):
>     eval('form.date' + i + '.render()')
>     eval('form.choice' + i + '.render()')
>     eval('form.notes' + i + '.render()')
>     print '<br/ >'
>
> But this seems inelegant, not least because everyone has always drilled into 
> me to never
> use eval except in the most dire of circumstances.  Is there a better way?  
> What would also be
> good, is if there was some way I could define how to render a single line, in 
> another place,
>
> and then call that process inside the for loop above.
>
> Another thing I am trying to do in the cleanest, most efficient way possible 
> is change
> what's in the dropdown, depending on what is selected in the date field (and 
> later another
>
> dropdown).  I found this: 
> http://stackoverflow.com/questions/8763564/how-do-i-update-a-dropdown-menu-when-another-dropdown-menu-option-is-selected
>
> which suggests using jQuery, but I'm wondering first, if there is any way 
> strictly within web.py
> to do it.  Second, I am going to populate the dropdown from a database, and 
> the only way I can
> figure of doing everything, I need to a database query for every set of 
> options.  So, am I
>
> correct in that assumption, or is there is a way to minimize dB hits.
>
> Finally, is there a better place to get documentation for web.py?  webpy.org 
> seems pretty sparse,
>
> not to mention poorly organized.
>
>  --
> You received this message because you are subscribed to the Google Groups
> "web.py" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/webpy?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>



-- 
Anand
http://anandology.com/

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/webpy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to