I'm trying to return some JSON from one of my views. My objects are
simple and I can get the built-in json serializer working, but wanted
a cleaner object when I deserialize in my webpage, i.e. I don't want
the pk or model entries. What is the best way to go about that? I
played around a little with overriding the end_object method in an
extension of the shipped JSONSerializer and was able to translate the
pk into the _current object (to reflect the pk as a member of the
object) but the resultant object still had pk/model and the fields
object that I had to traverse into.

my models.py (snippet):

Class Bug (models.Model):
    id = models.IntegerField ( primary_key=True)
    summary = models.CharField (max_length=256)
    status = models.ForeignKey( Status, default=1 )

Class Status (models.Model):
    objects = NaturalKeyManager()
    value = models.TextField(unique=True, blank=True)
    def natural_key(self):
        return (self.value)

my serializers.py:

from django.core.serializers.json import Serializer as JSONSerializer

Class Serializer:
    def end_object(self, obj):

        # to allow bug.fields.bugId in the javascript
        self._current['bugId'] = obj.id

        # append the object to the array of objects to be serialized
        self.objects.append( self._current )

        # clear the bug currently being processed so we don't mix up
data
        self._current = None

In JSON I'm looking for:

{ "buglist" : [ { "id" : 2, "summary" : "my summary", "status" :
"open" } ] }

versus

{ "buglist" : [ { "pk" : 2, "model" : "my.models.Bug", "fields" :
[ "summary" : "my summary", "status" : "open"] } ] }


thanks for any guidance you can give. Perhaps there is a better way
entirely to handle JSON in django I haven't run across yet.

-- redfive

-- 
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 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to