Hi Derek,

thanks! the as_dict method has already been fixed in trunk to handle
my use-case.

best wishes,
Omri

On Sat, Aug 11, 2012 at 12:26 AM, Derek <sp1d...@gmail.com> wrote:

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

-- 



Reply via email to