国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

瀏覽:2日期:2024-10-02 10:09:06

在接口返回數(shù)據(jù)時,如果數(shù)據(jù)庫表中查詢出來的某些字段為null時,在前端需要多處理一些數(shù)據(jù)異常的情況。

django可以自定義序列化返回處理,將返回的內(nèi)容限制和預(yù)處理再返回到前端。

1.未處理時返回

django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

如圖上,有email、mobile這兩個字段是有可以為空且默認(rèn)值為null的。

2.to_representation處理

在模型序列化類增加, to_representation方法,以自定義數(shù)據(jù)處理限制

from rest_framework import serializersfrom .models import UserInfoclass UserInfoSerializer(serializers.ModelSerializer): class Meta: model = UserInfo # fields = ’__all__’ fields = ( ’id’, ’email’, ’date_create’, ’mobile’, ’email’, ’notice_voice’, ’notice_email’, ’notice_sms’, ’notice_push’) def to_representation(self, instance): data = super().to_representation(instance) if not data[’email’]: data[’email’] = '' if not data[’mobile’]: data[’mobile’] = '' return data

3.處理后前端獲取

django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

補(bǔ)充知識:Django query查詢正常,返回對象為空QuerySet

我出現(xiàn)這個錯誤的前提條件:

數(shù)據(jù)為導(dǎo)入的數(shù)據(jù),并不是正常從前端添加入庫的。

問題現(xiàn)象:

views里獲取數(shù)據(jù)庫查詢對象集合 obj= models.表名.objects.filter(**kwargs)

控制臺debug發(fā)現(xiàn) obj為QuerySet<[]>

拿著query到數(shù)據(jù)庫里執(zhí)行sql ,還能查出數(shù)據(jù),就是沒返回

解決問題:

查看數(shù)據(jù)庫字段是否符合models中定義的格式,如,是否有默認(rèn)值,

django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

django 解決自定義序列化返回處理數(shù)據(jù)為null的問題

將數(shù)據(jù)庫為空字段修改成和models一樣的,有個快速比對的方法,從前端向數(shù)據(jù)庫添加一條數(shù)據(jù),拿這個正式數(shù)據(jù)和導(dǎo)入數(shù)據(jù)做比對,哪里不一樣,修改哪里即可。

以上這篇django 解決自定義序列化返回處理數(shù)據(jù)為null的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 海阳市| 安陆市| 林口县| 虹口区| 佛山市| 阿勒泰市| 山东省| 斗六市| 巩义市| 望江县| 孟州市| 镇赉县| 五大连池市| 巴林右旗| 嘉祥县| 西乌| 石屏县| 德化县| 铜陵市| 景东| 潮州市| 镇赉县| 长宁县| 三穗县| 沙田区| 大余县| 耿马| 建宁县| 彭州市| 始兴县| 广汉市| 信宜市| 右玉县| 嵩明县| 都江堰市| 长治市| 青神县| 三江| 蚌埠市| 洛扎县| 定兴县|