thirdparty/google_appengine/lib/django/tests/modeltests/choices/models.py
author Pawel Solyga <Pawel.Solyga@gmail.com>
Thu, 21 May 2009 14:44:41 +0200
changeset 2331 91379f6b8fcb
parent 109 620f9b141567
permissions -rwxr-xr-x
Add sorting of student projects on organization home page. List of student projects on organization home page is now sorted in alphabetical order by student name. Fixes issue 613.

"""
21. Specifying 'choices' for a field

Most fields take a ``choices`` parameter, which should be a tuple of tuples
specifying which are the valid values for that field.

For each field that has ``choices``, a model instance gets a
``get_fieldname_display()`` method, where ``fieldname`` is the name of the
field. This method returns the "human-readable" value of the field.
"""

from django.db import models

GENDER_CHOICES = (
    ('M', 'Male'),
    ('F', 'Female'),
)

class Person(models.Model):
    name = models.CharField(maxlength=20)
    gender = models.CharField(maxlength=1, choices=GENDER_CHOICES)

    def __str__(self):
        return self.name

__test__ = {'API_TESTS':"""
>>> 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()
'Male'
>>> s.get_gender_display()
'Female'
"""}