Ticket #5014: inspect_decimal_field.diff

File inspect_decimal_field.diff, 1.6 KB (added by jmelesky, 8 years ago)
  • django/db/backends/sqlite3/introspection.py

     
    6464    'smallinteger': 'SmallIntegerField',
    6565    'int': 'IntegerField',
    6666    'integer': 'IntegerField',
     67    'numeric': 'DecimalField',
    6768    'text': 'TextField',
    6869    'char': 'CharField',
    6970    'date': 'DateField',
     
    8485            m = re.search(r'^\s*(?:var)?char\s*\(\s*(\d+)\s*\)\s*$', key)
    8586            if m:
    8687                return ('CharField', {'max_length': int(m.group(1))})
     88            n = re.search(r'^\s*numeric\s*\(\s*(\d+)\s*,\s*(\d+)\s*\)\s*$', key)
     89            if n:
     90                return ('DecimalField', {'max_digits': int(n.group(1)),
     91                                         'decimal_places': int(n.group(2))})
    8792            raise KeyError
    8893
    8994DATA_TYPES_REVERSE = FlexibleFieldLookupDict()
  • django/core/management/commands/inspectdb.py

     
    8080                    if field_type == 'CharField' and row[3]:
    8181                        extra_params['max_length'] = row[3]
    8282
    83                     if field_type == 'DecimalField':
     83                    if field_type == 'DecimalField' and row[4] and row[5]:
    8484                        extra_params['max_digits'] = row[4]
    8585                        extra_params['decimal_places'] = row[5]
    8686
Back to Top