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'
原文地址:https://www.cnblogs.com/chiyun/p/14066856.html