choices字段参数
应用场景: 如果你需要创建一个有固定值的字段且这个字段的值是字符类型的,我们需要用到choices字段参数。
原因:因为在数据库中存字符类型的数据会大于其他数字类型的数据,而我们仅仅需要那几个固定的字符类型的值。在这种情况下如果我们要建立一个大型的网站,里面会有成千上万的数据,我们使用choices会大大减少数据库的存储压力。
案例: 建立一张User用户表
字段有 姓名 年龄 性别
而性别这个字段就符合我们choices的应用场景 它里面的值无非就是两个 男 或 女 因此我们可以用数字来代替存入数据库
下面我们建立这张表:
models.py
class User(models.Model): name = models.CharField(max_length=32) age = models.IntegerField() choices = ( (1,'男'),(2,'女') #当gender性别字段从数据库查出数字时 与其匹配对应相应的值 ) gender = models.IntegerField(choices = choices)
views.py 我们在取时也需要特定的格式
obj.get_choices字段_display()
user_obj = models.User.objects.filter(pk=1).first() print(user_obj.get_gender_display())
注意:当我们在此字段存入没有与choices匹配的数字时,并不会报错,而是展示出你存入的数字