Maybe you could find some inspiration from this project for Django :

http://code.google.com/p/django-dynamic-formset/

You need to install Django to test it...

What you seems to do is adding an arbitrary number of input for a given
field...

Following good database design pratice you will normalise your schema... I
had try to find a solution similar to django dynamic formset, but I give up
in the pass.

You have this thread that could maybe bring some answer :
http://groups.google.com/group/web2py/browse_thread/thread/50af0d67554c94d9/ad553c6a5514ecc7?pli=1

Web2py let you do this :
http://www.web2py.com/book/default/chapter/07?search=filter#One-form-for-multiple-tables

But you can't have fields with the same name in your table...

Finally it maybe possible with component now to load a arbitrary number of
fields inputs for a given table and with jQuery submit the differents forms
as one I would investigate in that direction too...

Good luck

Richard








On Mon, Jul 4, 2011 at 7:17 PM, Luis Goncalves <lgoncal...@gmail.com> wrote:

> Hello Richard!
>
> I looked at this, but wasn't sure how it could help -- what I need is a way
> for a (non-technical) admin to create profile forms with arbitrary fields
> (through a friendly web interface), and then users to be able to view and
> edit their (run-time reconfigurable) profiles.
>
> At any rate, the method I described above seems to work quite well,  thanks
> to web2py's versatility, allowing me to define forms programmatically
> (excerpt below).
>
> I was wondering if there was a more clever/efficient/proper way to do so.
> Perhaps not!
>
> Thanks!!
> Luis.
>
>     for field in event_fields:
>           # see if person has a pre-defined value
>           found = False
>           for my_efield in me.event_field:
>               if my_efield.display_title == field.display_title:
>                   found = True
>                   break
>
>           if found:
>               if field.data_type == 'string':
>                   new_input = INPUT(_type = field.data_type, _name =
> field.id, requires=IS_NOT_EMPTY(), _value=my_efield.data )
>                   form[0].insert(-2, TR(field.display_title+':', new_input
> ))
>
>               elif  field.data_type == 'text':
>                     .....
>           else:
>               if field.data_type == 'string':
>                   new_input = INPUT(_type = field.data_type, _name =
> field.id, requires=IS_NOT_EMPTY())
>                   form[0].insert(-2, TR(field.display_title+':', new_input
> ))
>
>               elif field.data_type == 'text':
>                    ....
>
>
>

Reply via email to