Django-choice用法
一、使用场景
当我们存储数据时,可能不想存整个字段,比如,男女性别,希望在数据库中存1,0
二、原理
choice接收一个元组(保证值不可变),同理每一个选项也是由一个元组(value,display_name)构成。
获取displayname
通过属性取value,通过 get_属性_display()方法取display_name。
from django.db import models
SHIRT_SIZES = (
('S', 'Small'),
('M', 'Medium'),
('L', 'Large')
)
class Person(models.Model):
name = models.CharField(max_length=60)
shirt_size = models.CharField(max_length=1,choices=SHIRT_SIZES)
存储数据
p=Person.objects.get(gender='S')
p.get_gender_display()
u'Small'
p=Person(gender="M")
p.get_gender_display()
u'Medium'
查询结果
p = Person(name="Fred Flintstone", shirt_size="L")
p.save()
p.shirt_size # 'L'
p.get_shirt_size_display() # 'Large'