thirdparty/google_appengine/lib/django/tests/modeltests/choices/models.py
author Todd Larsen <tlarsen@google.com>
Wed, 14 Jan 2009 20:37:47 +0000
changeset 809 757cc13ecd39
parent 109 620f9b141567
permissions -rwxr-xr-x
Hide 'tos' pull-down selector from Group profile forms. Until a way to select Documents for use as the Terms of Service for a Group exist (see http://code.google.com/p/soc/issues/detail?id=151), there is no point in hacking in scope_path and link_id fields here. The per-Group ToS feature will just be unavailable until an appropriate Document selector exists. Patch by: Todd Larsen Review by: to-be-reviewed

"""
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'
"""}