【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
}
相关推荐
马达拉16 分钟前
为什么Bun查询数据库接口响应比Rust还快
后端
LadenKiller21 分钟前
最新量化软件选择,先按能力判断表达生成和执行
人工智能·python
geovindu24 分钟前
go: Enumeration Algorithm
开发语言·后端·算法·golang·枚举算法
iuu_star1 小时前
Python大模型智能学习平台——设计与实现(AI教学系统)
大数据·人工智能·python·学习
雪隐1 小时前
个人电脑玩AI-10让5060 Ti给你打工——ComfyUI,我差点被它劝退三次
人工智能·后端
天才测试猿1 小时前
如何封装自动化测试框架?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
工具派1 小时前
写代码时,我把这个本地 AI Commit Message 生成器接进了工作流
前端·后端
overmind1 小时前
oeasy Python 102 集合_运算_交集_并集_差集_对称差集
开发语言·python
犀利豆1 小时前
AI 时代使用 Obsidian 作为 IDE
人工智能·后端
爱吃提升2 小时前
Python自动驾驶图像识别完整实战教程(OpenCV+YOLOv8,附可直接运行源码)
python·opencv·自动驾驶