Thanks a lot !! That's what I was looking for.
-Sarbjit On Friday, July 26, 2013 7:53:28 PM UTC+5:30, Anthony wrote: > > isinstance(table[field].requires, IS_IN_SET) > > Anthony > > On Friday, July 26, 2013 8:56:13 AM UTC-4, Sarbjit singh wrote: >> >> Thanks a lot Anthony for your help. >> >> I am facing problem while using the variable name with the isinstance >> method. >> >> i.e. isinstance(db.person.gender.requires, IS_IN_SET) returns TRUE >> >> But If I use it like : >> >> field = db.person.gender >> isinstance(field.requires, IS_IN_SET) ==> Exception that string has no >> attribute requires. >> >> Since my code is iterating over all the fields and doing some other >> operations, I have to store field in variable. >> >> Is there any way I can convert string back to gluon object ? >> >> Thanks >> Sarbjit >> >> On Friday, July 26, 2013 5:30:52 PM UTC+5:30, Anthony wrote: >>> >>> You can do: >>> >>> if hasattr(field.requires, 'options'): >>> >>> which will identify IS_IN_SET and IS_IN_DB validators. If you only want >>> to identify IS_IN_SET, you can do: >>> >>> if isinstance(field.requires, IS_IN_SET): >>> >>> To get the list of options, you can do field.requires.theset (for the >>> values), field.requires.labels (for the labels), or >>> field.requires.options() for a list of tuples of values and labels. >>> >>> You can also create a SELECT object via >>> SQLFORM.widgets.options.widget(field, >>> value=field.default). >>> >>> Anthony >>> >>> On Friday, July 26, 2013 4:55:41 AM UTC-4, Sarbjit singh wrote: >>>> >>>> Actually I am not using the SQLFORM. I am using the code for dynamic >>>> search form from ( >>>> http://www.web2pyslices.com/slice/show/1403/dynamic-search). I want to >>>> modify the code such that for the fields with validators, it should show >>>> the selection menu. So I want to add a check in the code below to detect >>>> if a field is having validator set, then use the SELECT command with the >>>> validator set values as argument. So far, I am not able to achieve it. >>>> >>>> Can you please recommend something in context here? >>>> >>>> Here is the code from the slice : >>>> >>>> def dynamic_search(table): >>>> tbl = TABLE() >>>> selected = [] >>>> ops = ['equals','not equal','greater than','less than', >>>> 'starts with','ends with','contains'] >>>> query = table.id > 0 >>>> for field in table.fields: >>>> chkval = request.vars.get('chk'+field,None) >>>> txtval = request.vars.get('txt'+field,None) >>>> opval = request.vars.get('op'+field,None) >>>> row = TR(TD(INPUT(_type="checkbox",_name="chk"+field, >>>> value=chkval=='on')), >>>> TD(field),TD(SELECT(ops,_name="op"+field, >>>> value=opval)), >>>> TD(INPUT(_type="text",_name="txt"+field, >>>> _value=txtval))) >>>> tbl.append(row) >>>> if chkval: >>>> if txtval: >>>> query &= build_query(table[field], >>>> opval,txtval) >>>> selected.append(table[field]) >>>> form = FORM(tbl,INPUT(_type="submit")) >>>> results = db(query).select(*selected) >>>> return form, results >>>> >>>> Thanks, >>>> Sarbjit >>>> >>>> >>>> >>>> On Friday, July 26, 2013 1:37:26 PM UTC+5:30, Massimo Di Pierro wrote: >>>>> >>>>> Exactly. Complete code in case you have errors: >>>>> >>>>> #model >>>>> db.define_table('persons',Field('gender')) >>>>> db.persons.gender.requires = IS_IN_SET(['Male', 'Female']) >>>>> >>>>> #controller default.py >>>>> def index(): >>>>> form = SQLFORM(db.persons).process() >>>>> return locals() >>>>> >>>>> #views default/index.html >>>>> {{extend 'layout.html'}} >>>>> {{=form}} >>>>> >>>>> >>>>> Mind we tend to call table names with singular not plural (person, not >>>>> persons). This will make your code more readable. >>>>> >>>>> On Friday, 26 July 2013 02:57:21 UTC-5, viniciusban wrote: >>>>>> >>>>>> It's done automaticaly by web2py. >>>>>> >>>>>> On Fri, Jul 26, 2013 at 2:29 AM, Sarbjit singh <[email protected]> >>>>>> wrote: >>>>>> > I have a db where I have set validator IS_IN_SET on a particular >>>>>> field. I am >>>>>> > generating table rows (to be used as form), so I need to check if a >>>>>> > particular field is having IS_IN_SET validator set and I want to >>>>>> retrieve >>>>>> > the set values. Reason I want to do this is that I am generating a >>>>>> dynamic >>>>>> > form based on the table fields and for the fields having IS_IN_SET >>>>>> validtor, >>>>>> > I want to show the "Drop Down" menu rather than Text Field and >>>>>> wants to >>>>>> > populate it with the Validator values. >>>>>> > >>>>>> > db.define_table('persons',Field('gender') >>>>>> > db.persons.gender.requires = IS_IN_SET(['Male', 'Female']) >>>>>> > >>>>>> > -Sarbjit >>>>>> > >>>>>> > -- >>>>>> > >>>>>> > --- >>>>>> > You received this message because you are subscribed to the Google >>>>>> Groups >>>>>> > "web2py-users" group. >>>>>> > To unsubscribe from this group and stop receiving emails from it, >>>>>> send an >>>>>> > email to [email protected]. >>>>>> > For more options, visit https://groups.google.com/groups/opt_out. >>>>>> > >>>>>> > >>>>>> >>>>> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

