【Django】枚举类型数据

模型

在模型里主要增加两项内容:

  1. 枚举表
  2. 字段增加choices
python 复制代码
class Snort(CoreModel):
    PAGE_TYPE_CHOICES = [
        (1, '失陷主机检测'),  # 1是保存到数据库里的数据,'失陷主机检测'是显示在前端的
        (2, '远程漏洞攻击检测'),
        (3, '可疑流量行为'),
        (4, 'WEB检测'),
    ]
    page_type = models.IntegerField(choices=PAGE_TYPE_CHOICES, max_length=11, verbose_name="归属页面", help_text="归属页面")

序列化

在序列化器里增加一个字段,用来表示这个枚举数字的含义;

python 复制代码
class SnortSerializer(CustomModelSerializer):
    """
    管理-序列化器
    """
    page_type_value = serializers.CharField(source="get_page_type_display", max_length=11, read_only=True)
#    ┃                              ┃        ┃ 
#    ┃                              ┃        ┗ source="get_page_type_display" :为啥这样写也不清楚,反正头和尾 get_ 和 _display 就行了
#    ┃                              ┗ serializers.CharField :序列化的数据类型
#    ┗ page_type_value : 是新增的字段
    

增加后的效果

增加后在GET返回的数据多了一个 page_type_value 这个字段是在序列化增加的字段

json 复制代码
{
	"page_type_value": "失陷主机检测",
	"page_type": 4
}
相关推荐
上进小菜猪2 小时前
把 KES 集群交给 Kubernetes 的九十天:一个 DBA 的试用实录
后端
两点王爷3 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
麻雀飞吧3 小时前
先判断工具用来学习、开发还是执行
人工智能·python
考虑考虑3 小时前
Springboot环境变量占位符语法
spring boot·后端·spring
人邮异步社区3 小时前
学习Python的最佳学习路径是什么?
python·程序员
步行cgn5 小时前
Spring 基于 XML 的自动装配:byName 详解
java·后端·spring
troy1286 小时前
Python 基础语法(九):Django/Flask/FastAPI 三大 Web 框架详细对比解析
python·jupyter·django·flask·github·fastapi
jzshmyt6 小时前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)
人工智能·pytorch·python·numpy·matplotlib·空间计算·scipy
高洁017 小时前
大模型的幻觉怎么治
人工智能·深度学习·django·transformer·tornado
RISCV_Explorer7 小时前
RISC-V启动与运行时规范机制解析——BRS约定、HSM多核启动与设备树要求
后端·risc-v