siniy wrote:
> Hi all,
> I've downloaded today a new release of Django and played with json
> serialization. I found that if you use DateTime field the resulting
> json string contains only date, but not all datetime. So I viewed a
> source code of django/core/serializers/json.py and found that:
> 
>     def default(self, o):
>         if isinstance(o, datetime.date):
>             return o.strftime(self.DATE_FORMAT)
>         elif isinstance(o, datetime.time):
>             return o.strftime(self.TIME_FORMAT)
>         elif isinstance(o, datetime.datetime):
>            return o.strftime("%s %s" % (self.DATE_FORMAT,
> self.TIME_FORMAT))
>       ....
> 
> I know that isinstance(o, datetime.date) returns "True" even "o" is a
> datetime object. But I don't know - may be it's a python bug? My python
> version 2.4.3 from Ubuntu Dapper. So I replace parts of django code and
> all works as I want:
> 

no, it's not a bug.

datetime.datetime inherits from datetime.

you can check it like this:

 >>> datetime.datetime.__mro__
(<type 'datetime.datetime'>, <type 'datetime.date'>, <type 'object'>)
 >>>

(mro is method-resolution-order)

as you see 'datetime' inherits from 'date', which inherits from 'object'.

and if you check the python-help, you'll see that
isinstance "Return whether an object is an instance of a class or of a 
subclass thereof".

and because datetime is a subclass of date, isinstance returns True.


maybe you could try this:

if type(o) == type(datetime.datetime):
        // your code here


gabor

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

Reply via email to