You could monkey patch it in 0.py in models, perhaps. On Thursday, July 26, 2012 1:10:43 AM UTC-7, Omri Har-Shemesh wrote: > > I use the pickled field to store a dictionary. Since dictionary > is not defined as a serializable type for the as_dict function, > it is not returned when calling to as_dict. > Adding it (dal.py line 6183) solved my problem, but I would > like to keep this change when I update my web2py next. Is > there a different way (without changing the dal) to achieve this? > Could you add it to the dal.py? Is it without risks? > > Thanks, > Omri > > On Thu, Jul 26, 2012 at 9:46 AM, Omri <omr...@gmail.com <javascript:>>wrote: > >> So I tried it out, and it works great, except for one thing - when I try >> to use record.as_dict() to get >> the structure which I can return to a JSON-RPC call which I normally use >> to communicate with my >> client, it simply does not return the field. >> I tried to print it out and I see very clearly that as long as it is a >> Row object there is no problem, but >> as soon as I run .as_dict() it disappears. >> My definitions are as follows: >> >> from gluon.dal import SQLCustomType >> pickled = SQLCustomType( >> type = 'text', >> native = 'text', >> encoder = (lambda x: pickle.dumps(x)), >> decoder = (lambda x: pickle.loads(x)) >> ) >> >> then I use >> db.define_table("my_table", >> Field("pickled_field", type=pickled) >> ) >> >> but when I fetch the record it does not go to as_dict() (actually I use >> as_list() but both don't work). >> >> Any suggestions? Is there a way to teach as_dict to interpret this field >> type? >> >> Best wishes, >> Omri >> >> >> On Wed, Jul 25, 2012 at 9:20 PM, howesc <how...@umich.edu >> <javascript:>>wrote: >> >>> For what it is worth i have used custom fields for this type of thing >>> with great success! >>> >>> >>> On Tuesday, July 24, 2012 8:20:03 AM UTC-7, Anthony wrote: >>>> >>>> You could use a SQLCustomType field: http://web2py.com/** >>>> books/default/chapter/29/6#**Custom-Field-types-(**experimental)<http://web2py.com/books/default/chapter/29/6#Custom-Field-types-%28experimental%29> >>>> . >>>> >>>> Anthony >>>> >>>> On Tuesday, July 24, 2012 8:34:07 AM UTC-4, Omri Har-Shemesh wrote: >>>>> >>>>> >>>>> Hi web2pyers, >>>>> >>>>> very often, I have a field in the table which has to hold a complicated >>>>> value (most often numpy arrays). The way I implement it is that I use >>>>> "text" as the type of field, and then simply pickle.dumps(my_value) >>>>> when >>>>> I save the field, and then pickle.loads(value_from_db) to access the >>>>> field >>>>> again. >>>>> >>>>> My suggestion is simple - create field that automatically pickles the >>>>> values >>>>> it gets and unpickles them on extraction. Is this already implemented? >>>>> Do you have other suggestions on how to implement this so that I won't >>>>> need >>>>> to pickle every time I access the table? >>>>> >>>>> Best wishes, >>>>> Omri >>>>> >>>> -- >>> >>> >>> >>> >> >> >
--