Django Rest Framework 序列化(上)
數據庫
1、進一步使用 Serializerapache
① 路由微信
② 視圖url
③ 使用 serializerspa
# choices 字段顯示user_type = serializers.CharField(source="get_user_type_display")# 自定義 serializer 中的 key 值pwd = serializers.CharField(source="password")# 關聯對象屬性group_title = serializers.CharField(source="group.title")# 多對多關係roles = serializers.CharField(source="roles.all")# 表示自定義方法,顯示 queryset 對象詳情roles_info = serializers.SerializerMethodField()
若是沒有指定在 Field 中沒有定義 source 參數的時候,就自動與數據庫 models 定義的字段進行匹配,如上面的 username 字段。在定義字段後,Serializer 類中能夠自定義屬性,如 type。.net
當 models 中是以 choice 定義時:須要定義 source 參數,定義 get_字段名_display 才能獲取數據,這與在模板語言中的用法同樣,如上面的 user_type。3d
外鍵關聯的時候,直接 外鍵字段名.屬性 的方式定義傳參給 source 參數便可,如上面的 group.title。code
對於 roles 字段,想直接獲取全部的對象,可是沒法作到細粒度的將對象的全部屬性展現出來,只能獲取到 QuerySet 對象。對象
自定義字段,處理數據,如 roles_info 獲取全部的 role 對象的屬性,處理數據能夠定義方法,方法名格式爲 get_屬性,並 return 最終返回值。blog
本文分享自微信公衆號 - 數據雲團(SmartData)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。