There are two separate issues -- the validation of the submitted values,
and the widget displayed in the form to input the values. In your case, the
validation should still work, but you won't get the widget because the
widget is added by the SQLFORM __init__ method, which is called before you
add the additional field. If you want a dropdown, you'll have to insert a
SELECT() element instead of an INPUT() element.
Anthony
On Sunday, October 7, 2012 5:44:48 AM UTC-4, dave wrote:
>
> I have the following code
>
> def test(): # gets fired for first page load, it loads the filter
> applicants form on the left side
> form = SQLFORM(db.auth_user, request.args(0), buttons=[], separator = '
> ', formstyle = 'divs', deletable=True, fields = ['test1', 'test2', 'test3'
> ], upload=URL(r=request, f='download'), showid = False)
>
> # this line of code adds a test dropdown box to the filter applicants
> form, because it is not part of the auth_user field, it needs to be added
> separately
> test0 = TR(LABEL('test 0'),
> INPUT(_type='text', _name='test0', requires=IS_IN_DB
> (db, db.tiers.type)))
> form[0].insert(1,test0) # 1 is the position where it will be added
> # end of inserting code
>
> the problem is the input box wont show a dropdown box as expected, it only
> shows a blank text box, is it a bug or am I missing something
>
--