Django 序列化資料之多表資料序列化

2022-09-17 05:24:09 字數 2283 閱讀 4741

1.將查詢後的多張表的資料做序列化操作;

2.為什麼要做三張表的序列化操作,因為三張表的字段有些相同有些不同;

3.將三張表序列化後的資料進行合併;

4.之後將合併後的序列化操作實現分頁查詢操作;

data = }

group1qeryset =models.group1.objects.all()

group2qeryset =models.group2.objects.all()

group3qeryset =models.group3.objects.all()

### 序列化操作

group1res = iam_serializer.getlistgroup1serializer(group1qeryset, many=true)

group2res = iam_serializer.getlistgroup2serializer(group2qeryset, many=true)

group3res = iam_serializer.getlistgroup3serializer(group3qeryset, many=true)

dataall =chain(group1res.data, group2res.data, group3res.data)

datalist = [dataobj for dataobj in dataall] #

### 重新將chian資料型別轉換成list型別

#### 分頁功能

pageresp = pagefunc(data=datalist, currentpage=currentpage, pageszie=pagesize)

data[

'result

']['

data

'] = pageresp['

data']

data[

'result

']['

pagebean

'] = pageresp['

pagebean']

data[

'msg

'] = '

查詢成功

'

#

## django自帶的分頁模組

from django.core.paginator import

paginator, emptypage, pagenotaninteger

defpagefunc(data,currentpage,pageszie,):

pagesize = int(pageszie) #

設定每頁顯示條數

datadict = }

#生成分頁例項

paginator =paginator(data, pagesize)

#獲取資料總條數

datadict['

pagebean

']['

totalelements

'] =paginator.count

#每頁顯示條數

datadict['

pagebean

']['

pagesize

'] =pagesize

#總共頁數

datadict['

pagebean

']['

totalpagenum

'] =paginator.num_pages

#獲取指定頁碼的資料

try:

data =paginator.page(currentpage)

except

pagenotaninteger:

data = paginator.page(1)

except

emptypage:

data =paginator.page(paginator.num_pages)

#當前多少頁

datadict['

pagebean

']['

currentpage

'] =data.number

datadict[

'data

'] =data.object_list

return datadict

1

請求方式:get

Django 序列化資料之單錶資料序列化

ret errors obj.errors.as data result json.dumps ret,cls jsoncustomencoder jsoncustomencoder是自定義的cls,用來轉換ret中特殊的error欄位型別 第一種 v的型別是未知的 from django.core...

Django序列化與反序列化

新建乙個模型類 class userinfo models.model name models.charfield max length 20 password models.charfield max length 11 addkey models.foreignkey addressinfo c...

django的序列化

關於django的序列化主要應用在將資料庫中檢索的資料返回給客戶端使用者,特別的ajax請求一般返回的json格式 兩種方法 缺點就是只能應用於物件 ret models.book.objects.filter con print ret queryset,物件 就是上面是列表 from djang...