It would be safer to also use
base64.encodestring(pickle.dumps(python_data)) and
pickle.loads(base64.decodestring(db_data))
just like Django's db cache does. Pickle data is binary and is not
good for TextField

On 17 дек, 15:08, Ned Batchelder <[EMAIL PROTECTED]> wrote:
> If I understand what you're doing here, you need to be very careful.
> Converting a dictionary to a string (or pickle) does not guarantee that
> two equal dictionaries convert into two equal strings (or pickles),
> especially if your version of Python changes.  For example, your code
> below may create a pickle with the key 'foo' first, or it may create a
> pickle with the key 'bar' first.  Both pickles un-pickle to an
> equivalent dictionary, but the pickles won't compare as equal, and your
> queries will fail.
>
> I could be wrong, and the pickle module provides some guarantee about
> the equivalency of pickles, but I don't think so.
>
> --Ned.http://nedbatchelder.com/blog
>
>
>
> [EMAIL PROTECTED] wrote:
> > I fixed this -- not Django's fault at all. For the full field code, go
> > tohttp://www.djangosnippets.org/snippets/513/
>
> > On Dec 13, 8:08 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
>
> >> Hey All,
>
> >> I've just written a custom model field for storing anything which is
> >> pickle-able (generally this will be used for storing dictionaries). It
> >> all works great, apart from when I want to perform a query on objects
> >> using the field as an argument. When doing something like:
>
> >> SomeModel.objects.filter(my_field={'foo': 'bar', 'bar': 'baz'})
>
> >> However, it seems to reduce my dictionary to an iterable containing
> >> just the dictionary keys (so, in this case ['foo', 'bar']). I presume
> >> Django is doing this by iterating over the dictionary, but obviously
> >> this doesn't work for my field. Is there any way to stop Django from
> >> doing this, away from overriding query methods in the manager to
> >> convert the dictionary to something non-iterable?
>
> >> Any help much appreciated!
>
> >> Thanks,
> >> O
>
> --
> Ned Batchelder,http://nedbatchelder.com
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to