django 模型choice基本讲解
choice的主要使用形式为[(A,B),(C,D),(E,F)]这种形式,对于有一定python了解的同学可能知道python可以采用zip的方式生成。
这里放一个简单例子:
a = ['li', 'zhao', 'dan']
b = ['1', '2', '3']
c = zip(a, b)
print(list(c))
[('li', '1'), ('zhao', '2'), ('dan', '3')]
当然直接用元祖的方式也可以使用choice
当然,还有更进一步的使用:
from django.db import modelsclass Student(models.Model):FRESHMAN = 'FR'SOPHOMORE = 'SO'JUNIOR = 'JR'SENIOR = 'SR'GRADUATE = 'GR'YEAR_IN_SCHOOL_CHOICES = [(FRESHMAN, 'Freshman'),(SOPHOMORE, 'Sophomore'),(JUNIOR, 'Junior'),(SENIOR, 'Senior'),(GRADUATE, 'Graduate'),]year_in_school = models.CharField(max_length=2,choices=YEAR_IN_SCHOOL_CHOICES,default=FRESHMAN,)def is_upperclass(self):return self.year_in_school in {self.JUNIOR, self.SENIOR}
这其中YEAR_IN_SCHOOL_CHOICES中前面一个FRESHMAN表示放在数据库中的值,后面一个则表示显示值,由于FRESHMAN长度问题,我们往往采用enum的形式将键长缩短为几个字符来进行存储。
跟进一步,就和django自己定义的类有关了
class NIHAO(model.Models) class YearInSchool(models.TextChoices):FRESHMAN = 'FR', _('Freshman')SOPHOMORE = 'SO', _('Sophomore')JUNIOR = 'JR', _('Junior')SENIOR = 'SR', _('Senior')GRADUATE = 'GR', _('Graduate')
Textchoices可以写成内置类,将上述内容转换成该代码
而对于整数类,可以采用:
class Card(models.Model):class Suit(models.IntegerChoices):DIAMOND = 1SPADE = 2HEART = 3CLUB = 4
通过django官方文档我们可以继续进行后续学习https://docs.djangoproject.com/en/4.0/ref/models/fields/
django 模型choice基本讲解相关推荐
- django模型查询_如何在Django中编写有效的视图,模型和查询
django模型查询 I like Django. It's a well-considered and intuitive framework with a name I can pronounce ...
- Django模型层Meta内部类详解
Django 模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.以下对此作一总结: abstract 这个属性是定义当前的模型类是不是一个抽象类.所谓抽象类是不会对应 ...
- 4Python全栈之路系列之Django模型
Python全栈之路系列之Django模型 MTV开发模式 把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的Model-View-Controller(MVC)模式.在这个模式中 ...
- Django模型 Q对象实现复杂查找
2019独角兽企业重金招聘Python工程师标准>>> 转自 http://1boke.sinaapp.com/blog/3/8/ Django模型 Q对象实现复杂查找,对于初学者来 ...
- 【Django】MTV(Django)模型
MTV(Django)模型 MVC模型 MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视 ...
- Web开发-Django模型层
Django模型层 简述 Django框架处理业务的逻辑一般如下(省略图,源于网络,侵删) 可以看到,Django自带了一套ORM机制,这也是Django框架的核心-"全面",将一 ...
- Django模型(三)
Django模型(三) 文章目录 Django模型(三) 一.模型类关系 1.关系字段类型 2.一对多关系 3.多对多关系 二.关联查询 1.通过对象执行关联查询 2.通过模型类执行关联查询 三.自关 ...
- Django模型(二)
Django模型(二) 文章目录 Django模型(二) 一.字段查询 1.查看mysql数据库日志 二.条件运算符 1.查询等 2.模糊查询 3.空查询 4. 范围查询 5. 比较查询 6).日期查 ...
- Django模型(一)
Django模型(一) 文章目录 Django模型(一) 一.配置Django使用mysql数据库 二.案例 1.定义模型类 2.打开booktest/models.py文件 3.迁移 4.测试数据 ...
- 第四章:Django 模型 —— 设计系统表
1. Django框架提供了完善的模型(Model )层来创建和存储数据,每一个模型对应数据库中的唯一的一张表. 2. Django 模型基础知识: .每一本模型是一个Python类,继承了djang ...
最新文章
- C++常见面试题之数据结构和算法
- debian7更换gcc版本的二种方法分享
- 基于SpringBoot和Vue的分布式爬虫系统(JavaWeb)
- 调用函数,计算分段函数的值
- python返回变量类型_Python指定函数参数、返回值类型报错是咋了?
- 【做题】uoj#370滑稽树上滑稽果——巧妙dp
- Redis基础(十二)——缓存读写策略
- 【工程项目经验】函数编译可见性
- “放管服”改革背景下公安车驾管业务办理情况调研
- MATLAB 图像伪彩色处理
- Oracle锁表解决方法
- 求虐,我还想再拓展一次
- nominal,ordinal,interval,ratio variable的区别为:意思不同、用法不同。
- lambda中FirstOrDefault和First
- KubeSphere 社区双周报 | 2022-08-09
- JavaScript 触发浏览器页面全屏,某div区域全屏
- 开发者模式下微信公众号按钮助手
- 为什么把资金叫做头寸
- svg背景_SVG电影背景:安迪的房间,俯瞰酒店
- C语言游戏脚本:一个简单的内存脚本!