DRF 序列化自定義字段

2022-07-07 13:18:10 字數 2481 閱讀 4958

models.py:

from django.db import models

class usergroup(models.model):

title = models.charfield(max_length=32)

class userinfo(models.model):

user_type_choices = (

(1, "普通使用者"),

(2, "管理員"),

(3, "超級管理員"),

)user_type = models.integerfield(choices=user_type_choices)

username = models.charfield(max_length=32,unique=true)

password = models.charfield(max_length=64)

group = models.foreignkey("usergroup", on_delete=models.do_nothing)

roles = models.manytomanyfield("role")

class role(models.model):

title = models.charfield(max_length=32)

role 表中資料

usergroup 表中資料

userinfo 表中資料

userinfo_role 表中資料

# 獲取 userinfo 表的 user_type 欄位的 key

# 變數名是任意取的,因為通過 source 指定了字段

user_type_id = serializers.charfield(source="user_type")

# 獲取 userinfo 表的 user_type 欄位的 value

user_type_title = serializers.charfield(source="get_user_type_display")

# 獲取 userinfo 表的 username 和 password 字段

username = serializers.charfield()

password = serializers.charfield()

# 獲取 userinfo 表關聯的 usergroup 表的 title 字段(一對多的關係)

user_group = serializers.charfield(source="group.title")

# 獲取 userinfo 表關聯的 role 表的 id、title 字段(多對多關係)

user_role = serializers.serializermethodfield()

# 命名規則:get_變數名,user_obj 為 user 物件

def get_user_role(self, user_obj):

role_list = user_obj.roles.all()

ret =

# 獲取 role 表中的資料

訪問:

序列化自定義字段

審批流class permission classers isau 1 指定人員審批 2 角色組審批 flowconf models.foreignkey flowconf,on delete models.cascade sequence models.charfield max length 6...

DRF 序列化之自定義校驗規則

views.py 自定義規則 class testvalidator object def init self,base self.base base def call self,value 規則明細 if not value.startswith self.base message 內容必須以 s...

可序列化和自定義序列化

序列化技術的主要兩個目的是 持久化儲存 按值封送。net framework支援三種序列化器 binary xml soap.他們各有優缺點,分別列如下 1.binary序列化是完全保真的,因為除非特殊宣告為nonserialized,那麼所有成員 包括私有的和公有的 都會被序列化。該序列化器的結果...