Django model與json

最近兩天一直在做如何從model中獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù)憋活,然后把數(shù)據(jù)變成json數(shù)據(jù)傳給前臺(tái)洛心。

from roomhourse.models import v_xs

student = v_xs.object.all()

#<class 'django.db.model.query.QuerySet'>

return HttpResponse(student)

結(jié)果不出意外的出錯(cuò)了俊柔,傳的不是json埠况,而是QuerySet(查詢集)炕泳,

后來用了

import json

student = json.dumps(student,ensure_ascii=False)

return HttpResponse(student)

后來就開始報(bào)xxx ?is not JSON serializable之類的問題痴怨,這個(gè)主要原因還是因?yàn)槟悴樵兊膍odel里面可能有外鍵的原因忙干,在你查詢后,外鍵也在其中浪藻,但是外鍵其實(shí)也是一個(gè)查詢集捐迫,最簡(jiǎn)單的方法就是外鍵不要傳給前端,不過還是可以有更高端的方法爱葵,如下:

自己創(chuàng)建一個(gè)類施戴,繼承json,來添加自定義類的處理方法

class JsonXS(json.JSONENcoder):

? ? def default(self, obj):????????

? ? ? ? ? ? if isinstance(obj,v_xs):

? ? ? ? ? ? ? ? ? ? return? obj.__str__()

? ? ? ? ? ? return?json.JSONEncoder.default(self, obj)

student = json.dumps(student, cls= JsonXS,?ensure_ascii=False)

待定

或者用自定義轉(zhuǎn)json的方法

在models中:

def? JsonXS(self):

????????return {....'roomxs':self.roomxs,...}

在view中:

def? toDicts(objs):

? ? ? ? json_str = []

? ? ? ? for o in objs:

? ? ? ? ? ? ? ? json_str.append(o.JsonXS())

? ? ? ? return json_str

已測(cè)萌丈,可以執(zhí)行

或者直接導(dǎo)入了serializers

from django.core import serializers

studentman = serializers.serialize("json",studentman)

return HttpResponse(studentmanage)

已測(cè)赞哗,可以執(zhí)行

以上三個(gè)方法應(yīng)該都是可以傳json值的,我只測(cè)試了兩種方法辆雾,第一種沒有測(cè)試

*************************************************************************************************************************************************

其實(shí)python中json就有自帶的方法肪笋,json.dumps()

dumps是將dict轉(zhuǎn)化成str格式,loads是將str轉(zhuǎn)化成dict格式

參看連接:Django model,QuerySet 序列化成json的方法 - CSDN博客

? ? ? ? ? ? ? ? ? [Python]json 錯(cuò)誤xx is not JSON serializable - CSDN博客

? ? ? ? ? ? ? ? ??Django發(fā)送Json格式數(shù)據(jù) - CSDN博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乾颁,一起剝皮案震驚了整個(gè)濱河市涂乌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌英岭,老刑警劉巖湾盒,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诅妹,居然都是意外死亡罚勾,警方通過查閱死者的電腦和手機(jī)毅人,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尖殃,“玉大人丈莺,你說我怎么就攤上這事∷头幔” “怎么了缔俄?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)器躏。 經(jīng)常有香客問我俐载,道長(zhǎng),這世上最難降的妖魔是什么登失? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任遏佣,我火速辦了婚禮,結(jié)果婚禮上揽浙,老公的妹妹穿的比我還像新娘状婶。我一直安慰自己,他們只是感情好馅巷,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布膛虫。 她就那樣靜靜地躺著,像睡著了一般令杈。 火紅的嫁衣襯著肌膚如雪走敌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天逗噩,我揣著相機(jī)與錄音掉丽,去河邊找鬼。 笑死异雁,一個(gè)胖子當(dāng)著我的面吹牛捶障,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纲刀,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼项炼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了示绊?” 一聲冷哼從身側(cè)響起灸蟆,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤启泣,失蹤者是張志新(化名)和其女友劉穎六孵,沒想到半個(gè)月后充择,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡展哭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年湃窍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闻蛀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡您市,死狀恐怖觉痛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茵休,我是刑警寧澤薪棒,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站泽篮,受9級(jí)特大地震影響盗尸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帽撑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞍时。 院中可真熱鬧亏拉,春花似錦、人聲如沸逆巍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锐极。三九已至笙僚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灵再,已是汗流浹背肋层。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留翎迁,地道東北人栋猖。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像汪榔,于是被迫代替她去往敵國(guó)和親蒲拉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容