Django Model Object Serialize By SpitEat

来源:互联网 发布:怎么看数据库端口 编辑:程序博客网 时间:2024/05/18 01:55

django model object 最简单的方法

s = NagiosHoststatus.objects.all()[0]print s.__dict__


但是这个方法有一个缺点, 外键所关联的对象并不会被Serialize,


   class Model1(models.Model):       name=models.CharField()       child=models.ForeignKey(Model2)   class Mode2(models.Model):       field1=models.CharField()       field2=models.IntegerField()

... {...    'pk': <a_pk>,...    'id': <an_id>,...    'name': <a_name>,...    'child_id': <id>... }

我们希望的结果是这样的

... {...    'pk': <a_pk>,...    'id': <an_id>,...    'name': <a_name>,...    'child': {...        'pk': <another_pk>,...        'id': <another_id>,...        'field1': <a_value>,...        'field2': <another_value>...    }... }


SpitEat出场了,

#coding=utf-8from django.core.management import setup_environ#from mytest import settingsimport settingssetup_environ(settings)from orm.models import NagiosHoststatusfrom bus.status import get_hoststatus_idfrom spiteat.djangosrz import *s = NagiosHoststatus.objects.all()[0]print s.__dict__status_srz = ModelSrz(custom_for=NagiosHoststatus)dd = status_srz.spit(s)print type(dd), ddprint ddprint "end."



原创粉丝点击