models.py:
from django.db import modelsrole 表中資料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)
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,那麼所有成員 包括私有的和公有的 都會被序列化。該序列化器的結果...