Django

Code

Changeset 687

Show
Ignore:
Timestamp:
09/25/05 15:36:05 (3 years ago)
Author:
adrian
Message:

Fixed #468 -- Model classes now get an accessor method to get the human-readable value for each field that has 'choices' set. Thanks, Robert

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/core/meta/__init__.py

    r682 r687  
    593593 
    594594        for f in opts.fields: 
     595            if f.choices: 
     596                # Add "get_thingie_display" method to get human-readable value. 
     597                func = curry(method_get_display_value, f) 
     598                setattr(new_class, 'get_%s_display' % f.name, func) 
    595599            if isinstance(f, DateField) or isinstance(f, DateTimeField): 
    596600                # Add "get_next_by_thingie" and "get_previous_by_thingie" methods 
     
    990994    kwargs['limit'] = 1 
    991995    return get_object_func(**kwargs) 
     996 
     997# CHOICE-RELATED METHODS ################### 
     998 
     999def method_get_display_value(field, self): 
     1000    value = getattr(self, field.column) 
     1001    return dict(field.choices).get(value, value) 
    9921002 
    9931003# FILE-RELATED METHODS #####################