Code

Ticket #1477: URLField-db-maxlength.diff

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

adds db backend support for URLField maxlength

Line 
1Index: django/db/models/fields/__init__.py
2===================================================================
3--- django/db/models/fields/__init__.py (revision 4053)
4+++ django/db/models/fields/__init__.py (working copy)
5@@ -766,15 +766,19 @@
6         val = self._get_val_from_obj(obj)
7         return {self.attname: (val is not None and val.strftime("%H:%M:%S") or '')}
8 
9-class URLField(Field):
10+class URLField(CharField):
11     def __init__(self, verbose_name=None, name=None, verify_exists=True, **kwargs):
12+        kwargs['maxlength'] = kwargs.get('maxlength', 200)
13         if verify_exists:
14             kwargs.setdefault('validator_list', []).append(validators.isExistingURL)
15-        Field.__init__(self, verbose_name, name, **kwargs)
16+        CharField.__init__(self, verbose_name, name, **kwargs)
17 
18     def get_manipulator_field_objs(self):
19         return [forms.URLField]
20 
21+    def get_internal_type(self):
22+        return "CharField"
23+
24 class USStateField(Field):
25     def get_manipulator_field_objs(self):
26         return [forms.USStateField]
27Index: django/db/backends/ado_mssql/creation.py
28===================================================================
29--- django/db/backends/ado_mssql/creation.py    (revision 4053)
30+++ django/db/backends/ado_mssql/creation.py    (working copy)
31@@ -21,6 +21,5 @@
32     'SmallIntegerField': 'smallint',
33     'TextField':         'text',
34     'TimeField':         'time',
35-    'URLField':          'varchar(200)',
36     'USStateField':      'varchar(2)',
37 }
38Index: django/db/backends/postgresql/creation.py
39===================================================================
40--- django/db/backends/postgresql/creation.py   (revision 4053)
41+++ django/db/backends/postgresql/creation.py   (working copy)
42@@ -25,6 +25,5 @@
43     'SmallIntegerField': 'smallint',
44     'TextField':         'text',
45     'TimeField':         'time',
46-    'URLField':          'varchar(200)',
47     'USStateField':      'varchar(2)',
48 }
49Index: django/db/backends/sqlite3/creation.py
50===================================================================
51--- django/db/backends/sqlite3/creation.py      (revision 4053)
52+++ django/db/backends/sqlite3/creation.py      (working copy)
53@@ -24,6 +24,5 @@
54     'SmallIntegerField':            'smallint',
55     'TextField':                    'text',
56     'TimeField':                    'time',
57-    'URLField':                     'varchar(200)',
58     'USStateField':                 'varchar(2)',
59 }
60Index: django/db/backends/mysql/creation.py
61===================================================================
62--- django/db/backends/mysql/creation.py        (revision 4053)
63+++ django/db/backends/mysql/creation.py        (working copy)
64@@ -25,6 +25,5 @@
65     'SmallIntegerField': 'smallint',
66     'TextField':         'longtext',
67     'TimeField':         'time',
68-    'URLField':          'varchar(200)',
69     'USStateField':      'varchar(2)',
70 }
71Index: django/db/backends/oracle/creation.py
72===================================================================
73--- django/db/backends/oracle/creation.py       (revision 4053)
74+++ django/db/backends/oracle/creation.py       (working copy)
75@@ -21,6 +21,5 @@
76     'SmallIntegerField': 'smallint',
77     'TextField':         'long',
78     'TimeField':         'timestamp',
79-    'URLField':          'varchar(200)',
80     'USStateField':      'varchar(2)',
81 }