Not sure if this is the best way but I wrote a class that all my
models inherit.
from django.utils import simplejson
from google.appengine.ext import db
from google.appengine.api import users
from datetime import *
import string
class json():
def getString(self):
s= {}
p = self.properties().iterkeys()
for k in p:
d = getattr(self,k)
s[k] = k + ' : ' + str(type(d))
return simplejson.dumps(s)
def getJson(self,include=None):
s = {"id": self.key().id()}
p = self.properties().iterkeys()
if include is None:
include = []
for k in p:
d = getattr(self,k)
#assume that d is an entity if it has a gql attr
if hasattr(d,'gql') :
s[k] = d.key().id()
if include.count(k) > 0:
for a in d.properties().iterkeys():
if hasattr(getattr(d,a),'gql') == False:
if self.serialDateTime(getattr(d,a)) !=
False:
s[a] = self.serialDateTime(getattr
(d,a))
else:
s[a] = getattr(d,a)
elif self.serialDateTime(d) != False:
s[k] = self.serialDateTime(d)
elif hasattr(d,'_User__email'):
s[k] = d.email()
else:
s[k] = d
return simplejson.dumps(s)
def serialDateTime(self, val):
if isinstance(val, date):
return val.strftime('%d-%m-%Y')
elif isinstance(val, time):
return val.strftime('%H:%M %p')
else:
return False
def getTplObject(self):
s = {"id": self.key().id()}
p = self.properties().iterkeys()
for k in p:
d = getattr(self,k)
if hasattr(d,'gql') :
s[k] = d.key().id()
elif hasattr(d,'_User__email'):
s[k] = d.email()
else:
s[k] = d
return s
def getIterJson(self,obj):
s = []
j = ','
for q in obj:
s.append(q.getJson())
return '[' + j.join(s) + ']'
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---