Ticket #1477: URLField-db-maxlength.diff

File URLField-db-maxlength.diff, 3.3 KB (added by Robert Bunting, 9 years ago)

adds db backend support for URLField maxlength

  • django/db/models/fields/__init__.py

     
    766766        val = self._get_val_from_obj(obj)
    767767        return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')}
    768768
    769 class URLField(Field):
     769class URLField(CharField):
    770770    def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs):
     771        kwargs['maxlength'] = kwargs.get('maxlength', 200)
    771772        if verify_exists:
    772773            kwargs.setdefault('validator_list', []).append(validators.isExistingURL)
    773         Field.__init__(self, verbose_name, name, **kwargs)
     774        CharField.__init__(self, verbose_name, name, **kwargs)
    774775
    775776    def get_manipulator_field_objs(self):
    776777        return [forms.URLField]
    777778
     779    def get_internal_type(self):
     780        return "CharField"
     781
    778782class USStateField(Field):
    779783    def get_manipulator_field_objs(self):
    780784        return [forms.USStateField]
  • django/db/backends/ado_mssql/creation.py

     
    2121    'SmallIntegerField': 'smallint',
    2222    'TextField':         'text',
    2323    'TimeField':         'time',
    24     'URLField':          'varchar(200)',
    2524    'USStateField':      'varchar(2)',
    2625}
  • django/db/backends/postgresql/creation.py

     
    2525    'SmallIntegerField': 'smallint',
    2626    'TextField':         'text',
    2727    'TimeField':         'time',
    28     'URLField':          'varchar(200)',
    2928    'USStateField':      'varchar(2)',
    3029}
  • django/db/backends/sqlite3/creation.py

     
    2424    'SmallIntegerField':            'smallint',
    2525    'TextField':                    'text',
    2626    'TimeField':                    'time',
    27     'URLField':                     'varchar(200)',
    2827    'USStateField':                 'varchar(2)',
    2928}
  • django/db/backends/mysql/creation.py

     
    2525    'SmallIntegerField': 'smallint',
    2626    'TextField':         'longtext',
    2727    'TimeField':         'time',
    28     'URLField':          'varchar(200)',
    2928    'USStateField':      'varchar(2)',
    3029}
  • django/db/backends/oracle/creation.py

     
    2121    'SmallIntegerField': 'smallint',
    2222    'TextField':         'long',
    2323    'TimeField':         'timestamp',
    24     'URLField':          'varchar(200)',
    2524    'USStateField':      'varchar(2)',
    2625}
Back to Top