That works perfectly. Thanks.
Avik
On Mar 27, 5:21 pm, "mr.freeze" wrote:
> Sorry, low blood sugar.
>
> def units_widget(food_id):
> def widget(f,v):
> #build your widget
> #using food_id
> return widget
>
> db.ate.units.widget = units_widget(food_id)
>
> On Mar 27, 4:05 pm
Sorry, low blood sugar.
def units_widget(food_id):
def widget(f,v):
#build your widget
#using food_id
return widget
db.ate.units.widget = units_widget(food_id)
On Mar 27, 4:05 pm, Avik Basu wrote:
> Also, if i wanted to extend SQLFORM.widgets.options.widget, how would
> i
Also, if i wanted to extend SQLFORM.widgets.options.widget, how would
i go about doing that? Is it as simple as replacing:
class Units_Widget(object):
with:
class Units_Widget(SQLFORM.widgets.options.widget):
Thanks,
Avik
On Mar 27, 5:03 pm, Avik Basu wrote:
> I get the following error:
>
>
I get the following error:
TypeError: __init__() should return None, not 'function'
I think the problem has to do with the following return statement in
the constructor:
return widget
Avik
On Mar 27, 11:57 am, "mr.freeze" wrote:
> Sorry, the constructor should be:
>
> def __init__(*args,**k
Sorry, the constructor should be:
def __init__(*args,**kargs):
On Mar 27, 10:53 am, "mr.freeze" wrote:
> You need to make your widget a class so you can pass args to it in the
> constructor:
>
> class Units_Widget(object):
> def __init__(**args):
> def widget(f,v):
> #buil
You need to make your widget a class so you can pass args to it in the
constructor:
class Units_Widget(object):
def __init__(**args):
def widget(f,v):
#build your widget
#using args
return widget
db.ate.units.widget = Units_Widget(food_id)
On Mar 27, 10
So, for my example, I tried your suggestion. I defined a widget in
models/widgets.py:
def units_widget(field,value,food_id):
...
and then in the controller, I set the widget with:
db.ate.units.widget = units_widget(food_id)
But here I am not passing field and value so I get an error. What
in the controller you can do
db.table.field.widget = SomeWidgetConstructor(args)
Not sure if this is what you are asking.
On 26 Mar, 18:26, Avik Basu wrote:
> Is there a way to pass arguments to a field's widget from the
> controller? For example:
>
> db.define_table("food", Field("name", "str
It depends on what specifically you are trying to accomplish.
You could set the validator instead, for example:
rr=db(db.food.name.like('m%')).select()
db.ate.food_id.requires=IS_IN_SET([(r.id,r.name) for r in rr])
Denes
On Mar 26, 6:26 pm, Avik Basu wrote:
> Is there a way to pass argument
9 matches
Mail list logo