参考
概叙
我们定义 model 时,很多时候需要一个可选择列表,这时候可以用 choices 指 定要选择的列表。
示例
有如下 model 定义:
from django.db import models
GENDER_CHOICES = (
('M', 'Male'),
('F', 'Female'),
)
class Person(models.Model):
name = models.CharField(max_length=20)
gender = models.CharField(max_length=1, choices=GENDER_CHOICES)
def __unicode__(self):
return self.name
choices 选项的值形式为一个包含一系列二元元组的元组。里面的每对元组格式 一样,第一个元素为要存到数据库里面的值,第二个元素可以通过对象的 "get_ 对象名_display()" 方法获得 。
下面是操作示例:
>>> from mysite.models import Person >>> a = Person(name='Adrian', gender='M') >>> a.save() >>> s = Person(name='Sara', gender='F') >>> s.save() >>> a.gender 'M' >>> s.gender 'F' >>> a.get_gender_display() u'Male' >>> s.get_gender_display() u'Female' # If the value for the field doesn't correspond to a valid choice, # the value itself is provided as a display value. >>> a.gender = '' >>> a.get_gender_display() u'' >>> a.gender = 'U' >>> a.get_gender_display() u'U'
