参考
概叙
示例

参考

概叙

我们定义 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'