Something like:
SELECT(*[r.type for r in db().select(db.tiers.type)], ...)
SELECT() takes OPTION() elements as its components, but if you give it
items not wrapped in OPTION, it will automatically do so.
Anthony
On Sunday, October 7, 2012 9:42:06 PM UTC-4, dave wrote:
>
> so how do I go about doing that, can you show me the syntax please. I have
> this so far SELECT(_type='text', _name='test0', requires=IS_IN_DB(db, db.
> tiers.type, '%(type)s')))
>
>
>
> On Sunday, October 7, 2012 6:21:49 PM UTC-7, Anthony wrote:
>>
>> Yes, you have to include the options in the SELECT() -- the SELECT()
>> doesn't know it should get the options from the IS_IN_DB validator.
>>
>> Anthony
>>
>> On Sunday, October 7, 2012 3:01:48 PM UTC-4, dave wrote:
>>>
>>> ok I got it to display using select()
>>>
>>> SELECT(_type='text', _name='test0', requires=IS_IN_DB(db, db.tiers.type
>>> , '%(type)s')))
>>>
>>> now the problem is it wont populate the options of the dropdown box from
>>> the database, my tiers database is defined like
>>>
>>> db.define_table('tiers',
>>> Field('type'))
>>>
>>>
>>> On Sunday, October 7, 2012 7:33:54 AM UTC-7, Anthony wrote:
>>>>
>>>> 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
>>>>>
>>>>
--