Django

Code

Changeset 7797

Show
Ignore:
Timestamp:
06/30/08 05:07:06 (2 months ago)
Author:
mtredinnick
Message:

Fixed #4485 -- Allow nullable DecimalFields? to store NULLs.

Based on a patch from tdterry. Thanks.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/db/models/fields/__init__.py

    r7794 r7797  
    696696 
    697697    def _format(self, value): 
    698         if isinstance(value, basestring)
     698        if isinstance(value, basestring) or value is None
    699699            return value 
    700700        else: 
     
    717717 
    718718    def get_db_prep_save(self, value): 
    719         if value is not None: 
    720             value = self._format(value) 
     719        value = self._format(value) 
    721720        return super(DecimalField, self).get_db_prep_save(value) 
    722721 
  • django/trunk/tests/regressiontests/model_fields/tests.py

    r5876 r7797  
    1616... 
    1717ValidationError: [u'This value must be a decimal number.'] 
     18 
     19>>> f = DecimalField(max_digits=5, decimal_places=1) 
     20>>> x = f.to_python(2) 
     21>>> y = f.to_python('2.6') 
     22 
     23>>> f.get_db_prep_save(x) 
     24u'2.0' 
     25>>> f.get_db_prep_save(y) 
     26u'2.6' 
     27>>> f.get_db_prep_save(None) 
     28>>> f.get_db_prep_lookup('exact', x) 
     29[u'2.0'] 
     30>>> f.get_db_prep_lookup('exact', y) 
     31[u'2.6'] 
     32>>> f.get_db_prep_lookup('exact', None) 
     33[None] 
     34 
    1835"""