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
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,
Sorry, the constructor should be:
def __init__(*args,**kargs):
On Mar 27, 10:53 am, mr.freeze nat...@freezable.com 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):
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 nat...@freezable.com wrote:
Sorry, the constructor should be:
def
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 avikb...@gmail.com wrote:
I get the
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 avikb...@gmail.com wrote:
Also, if i wanted to extend
That works perfectly. Thanks.
Avik
On Mar 27, 5:21 pm, mr.freeze nat...@freezable.com 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,
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 avikb...@gmail.com wrote:
Is there a
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 avikb...@gmail.com wrote:
Is there a way to pass arguments to a field's widget from the
controller? For example:
db.define_table(food,
9 matches
Mail list logo