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
>>>>>
>>>>

-- 



Reply via email to