choices参数
choices参数:
针对表中某个可能列举完全的字段,采用choices参数
例如:性别可以列举完全为男女,其他
- choice参数使用
sex_choices = (
(1, '男'),
(0, '女'),
(2, '其他'),
)
sex = models.IntegerField(choices=sex_choices)
- 查询
from app01 import models
# 录入
# models.User.objects.create(name='q', sex=0)
# models.User.objects.create(name='w', sex=1)
# models.User.objects.create(name='e', sex=2)
# models.User.objects.create(name='r', sex=3)
# 当查询的sex字段值在我们定义的choice参数中时
# user_obj = models.User.objects.filter(pk=1).first()
# print(user_obj.sex) # 这里返回的是0, 并非是0对应的女
# print(user_obj.get_sex_display()) # 这里返回的是0对应的女
# 当查询的sex字段值不在在我们定义的choice参数中时
# user_obj = models.User.objects.filter(pk=4).first()
# print(user_obj.sex) # 这里返回的是3,虽然超出范围,但并没报错
# print(user_obj.get_sex_display()) # 这里返回的也是3, 当查询的值不在定义的choices中, 返回的是我们录入的值