中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django實現將后臺model對象轉換成json對象并傳遞給前端jquery

發布時間:2020-08-30 23:22:31 來源:腳本之家 閱讀:366 作者:huoyuanshen 欄目:開發技術

1、django的model轉json對象。

1.1、單個modle轉換,返回json對象:

sqlOrder = get_object_or_404(SqlOrder,id=request.GET.get("id"))
objJson = serialize('json',[sqlOrder])[1:-1]
{"model": "sqlapply.sqlorder", "pk": 2, "fields": {"work_id": "{now}{_ran}", "username": "admin", "status": 3, "type": 0, "backup": 0}}

注意:objJson["fields"]["username"] 才能獲得想要屬性值。objJson["pk"]獲得主鍵值。

1.2、querySet轉換:

json_data = serializers.serialize("json", MyModel.objects.all())

2、轉換后的json對象作為子元素傳遞到前端:

2.1、將json對象轉換成字符串。(單引號包含屬性)。

objStr = json.loads(objJson)

2.2、組拼json對象。

response_data = {'statcode': '1', 'data':objStr}

2.3、返回前進行對象轉換:

return HttpResponse(json.dumps(response_data))

2.4、前端接受并獲取:

 $.ajax({
      url: "{% url 'sqlapply:auditSqlOrder' %}",
      type:"GET",
      data:{"id":id,"args":"getObjById"},
      success:function(result){
        res = jQuery.parseJSON(result);  #關鍵代碼!!!!解析一個 JSON 字符串'{"name":"John"}'為Json對象。
        if (res["statcode"] == "1") {
          objStr = res["data"];
          console.log(objStr["fields"]["username"]);#獲取方式1
      alert(objStr.fields.username);#獲取方式2
        }
      },
      error:function(){
        alert("訪問異常,請截圖聯系管理員 \t\n ErrorNO:auditSqlOrder.getObjById")
      }
    });

補充知識:django 將model轉換成想要的json格式

model:

class SysRole(models.Model):
  id = models.CharField(db_column='ID', primary_key=True, max_length=50) # Field name made lowercase.
  rolename = models.CharField(db_column='RoleName', max_length=50) # Field name made lowercase.
  description = models.CharField(db_column='Description', max_length=200, blank=True, null=True) # Field name made lowercase.
  querycode = models.CharField(db_column='QueryCode', max_length=200, blank=True, null=True) # Field name made lowercase.
  isdisabled = models.CharField(db_column='IsDisabled') # Field name made lowercase. This field type is a guess.
 
  def __unicode__(self):
    return self.rolename
  # 將屬性和屬性值轉換成dict 列表生成式
  def toDict(self):
    return dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]])#type(self._meta.fields).__name__
  class Meta:
    managed = False
    db_table = 'sys_role'
# 遍歷查詢集 調用model屬性轉換成dict
def queryset_to_json(queryset):
    obj_arr=[]
    for o in queryset:
        obj_arr.append(o.toDict())
    return obj_arr
  # 獲取角色分頁列表
  def get_roles_page(self,_page,_limit):
    _roles = SysRole.objects.all()[(int(_page)-1)*int(_limit):int(_page)*int(_limit)]
    _count = SysRole.objects.all().count()
    _dict_roles = tools.queryset_to_json(_roles)
    _data_page_json = {}
    _data_page_json['Rows']=_dict_roles
    _data_page_json['Total']=_count
    return json.dumps(_data_page_json,ensure_ascii=False)

在model上加入toDict方法 然后執行查詢 得到queryset 遍歷它 將queryset里的每個model執行他的todict方法 轉換成字典格式 之后統一調用json.dumps方法轉json

以上這篇django實現將后臺model對象轉換成json對象并傳遞給前端jquery就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麦盖提县| 察隅县| 牡丹江市| 临城县| 广东省| 静海县| 卢氏县| 赤城县| 白银市| 离岛区| 剑河县| 广东省| 漾濞| 凤阳县| 康保县| 东莞市| 锦州市| 普格县| 偏关县| 平舆县| 乌什县| 延吉市| 潍坊市| 德保县| 新邵县| 广汉市| 北流市| 神农架林区| 乐昌市| 大埔县| 肥东县| 安徽省| 崇礼县| 海原县| 丰台区| 呼图壁县| 札达县| 项城市| 河北省| 江陵县| 阿巴嘎旗|