【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
}
相关推荐
掘金者阿豪15 分钟前
微信小程序虚拟支付与广告转化回传实战记录
后端
ping某1 小时前
专栏-null 和 undefined 到底是什么?
前端·javascript·后端
神奇小汤圆1 小时前
别再只会用ArrayList了!Java集合框架的性能天花板到底在哪?
后端
神奇小汤圆2 小时前
Dubbo 的 SPI 和 JDK 的 SPI 有什么区别?
后端
叫我少年2 小时前
C# 字符串基础
后端
道友可好2 小时前
从今天开始:你的第一个 Harness Engineering 实践
前端·人工智能·后端
呱呱复呱呱2 小时前
Django CBV 源码解读:一个请求是怎么找到你的 get() 方法的
python·django
其实是白羊3 小时前
CoderTools 1.5.3:让 AI 帮你看懂代码调用链路
后端·ai编程·vibecoding
妙码生花3 小时前
从 PHP 到 AI + Golang,程序员自救转型手记(二):目录结构、初始化 GIT、设计并开发配置系统
前端·后端·go
千寻girling3 小时前
一份不可多得的《微服务》教程
后端·面试·github