Django Choices选择类型

Django里有一个Choices类,相关官方文档见此处。

说明

从实现方式来说,这是一个继承方法,继承django.db.models.Choices,实现的效果接近枚举类型(Enumeration types)或者字典。

我使用此种方法的目的是,部分不会变动的,带有选项性质的小规模数据,可以不用放在数据库中实现持久化。(这以设计后,修改就要从代码层次进行变动)

Choices有主要2种用法,我这里主要陈述带有models.Choices多继承的类型。

class Level(models.IntegerChoices, models.Choices):
    """安全级别

        安全级别相关内容

        {
            "RECORDS": [
                {
                    "level_id": "1",
                    "description": "基础定义级"
                },
                {
                    "level_id": "2",
                    "description": "增强控制级"
                },
                {
                    "level_id": "3",
                    "description": "持续优化级"
                },
                {
                    "level_id": "4",
                    "description": "量化完善级"
                }
            ]
        }
    Special:
        name: DT
        label: '数据服务安全'
        value: 1
    """
    LEVEL_1 = 1, '基础定义级'
    LEVEL_2 = 2, '增强控制级'
    LEVEL_3 = 3, '持续优化级'
    LEVEL_4 = 4, '量化完善级'

使用

在与他人传递数据时,就可以不用传递彼此约定的文字,直接传递id就可以了

如在JSON传递时,传递参数为{“level_id”: "2"}

print(Level(int(level_id)).label)
# "增强控制级"

 

你可能感兴趣的:(后台,python,python,django,Choices,JSON)