Code

Ticket #231: maxlength_for_filefields.diff

File maxlength_for_filefields.diff, 5.3 KB (added by mssnlayam@…, 7 years ago)

Patch

Line 
1Index: django/db/models/fields/__init__.py
2===================================================================
3--- django/db/models/fields/__init__.py (revision 4439)
4+++ django/db/models/fields/__init__.py (working copy)
5@@ -582,6 +582,8 @@
6 class FileField(Field):
7     def __init__(self, verbose_name=None, name=None, upload_to='', **kwargs):
8         self.upload_to = upload_to
9+        if 'maxlength' not in kwargs:
10+            kwargs['maxlength'] = 100
11         Field.__init__(self, verbose_name, name, **kwargs)
12 
13     def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
14@@ -663,6 +665,8 @@
15 class FilePathField(Field):
16     def __init__(self, verbose_name=None, name=None, path='', match=None, recursive=False, **kwargs):
17         self.path, self.match, self.recursive = path, match, recursive
18+        if 'maxlength' not in kwargs:
19+            kwargs['maxlength'] = 100
20         Field.__init__(self, verbose_name, name, **kwargs)
21 
22     def get_manipulator_field_objs(self):
23Index: django/db/backends/ado_mssql/creation.py
24===================================================================
25--- django/db/backends/ado_mssql/creation.py    (revision 4439)
26+++ django/db/backends/ado_mssql/creation.py    (working copy)
27@@ -5,10 +5,10 @@
28     'CommaSeparatedIntegerField': 'varchar(%(maxlength)s)',
29     'DateField':         'smalldatetime',
30     'DateTimeField':     'smalldatetime',
31-    'FileField':         'varchar(100)',
32-    'FilePathField':     'varchar(100)',
33+    'FileField':         'varchar(%(maxlength)s)',
34+    'FilePathField':     'varchar(%(maxlength)s)',
35     'FloatField':        'numeric(%(max_digits)s, %(decimal_places)s)',
36-    'ImageField':        'varchar(100)',
37+    'ImageField':        'varchar(%(maxlength)s)',
38     'IntegerField':      'int',
39     'IPAddressField':    'char(15)',
40     'ManyToManyField':   None,
41Index: django/db/backends/postgresql/creation.py
42===================================================================
43--- django/db/backends/postgresql/creation.py   (revision 4439)
44+++ django/db/backends/postgresql/creation.py   (working copy)
45@@ -9,10 +9,10 @@
46     'CommaSeparatedIntegerField': 'varchar(%(maxlength)s)',
47     'DateField':         'date',
48     'DateTimeField':     'timestamp with time zone',
49-    'FileField':         'varchar(100)',
50-    'FilePathField':     'varchar(100)',
51+    'FileField':         'varchar(%(maxlength)s)',
52+    'FilePathField':     'varchar(%(maxlength)s)',
53     'FloatField':        'numeric(%(max_digits)s, %(decimal_places)s)',
54-    'ImageField':        'varchar(100)',
55+    'ImageField':        'varchar(%(maxlength)s)',
56     'IntegerField':      'integer',
57     'IPAddressField':    'inet',
58     'ManyToManyField':   None,
59Index: django/db/backends/sqlite3/creation.py
60===================================================================
61--- django/db/backends/sqlite3/creation.py      (revision 4439)
62+++ django/db/backends/sqlite3/creation.py      (working copy)
63@@ -8,10 +8,10 @@
64     'CommaSeparatedIntegerField':   'varchar(%(maxlength)s)',
65     'DateField':                    'date',
66     'DateTimeField':                'datetime',
67-    'FileField':                    'varchar(100)',
68-    'FilePathField':                'varchar(100)',
69+    'FileField':                    'varchar(%(maxlength)s)',
70+    'FilePathField':                'varchar(%(maxlength)s)',
71     'FloatField':                   'numeric(%(max_digits)s, %(decimal_places)s)',
72-    'ImageField':                   'varchar(100)',
73+    'ImageField':                   'varchar(%(maxlength)s)',
74     'IntegerField':                 'integer',
75     'IPAddressField':               'char(15)',
76     'ManyToManyField':              None,
77Index: django/db/backends/mysql/creation.py
78===================================================================
79--- django/db/backends/mysql/creation.py        (revision 4439)
80+++ django/db/backends/mysql/creation.py        (working copy)
81@@ -9,10 +9,10 @@
82     'CommaSeparatedIntegerField': 'varchar(%(maxlength)s)',
83     'DateField':         'date',
84     'DateTimeField':     'datetime',
85-    'FileField':         'varchar(100)',
86-    'FilePathField':     'varchar(100)',
87+    'FileField':         'varchar(%(maxlength)s)',
88+    'FilePathField':     'varchar(%(maxlength)s)',
89     'FloatField':        'numeric(%(max_digits)s, %(decimal_places)s)',
90-    'ImageField':        'varchar(100)',
91+    'ImageField':        'varchar(%(maxlength)s)',
92     'IntegerField':      'integer',
93     'IPAddressField':    'char(15)',
94     'ManyToManyField':   None,
95Index: django/db/backends/oracle/creation.py
96===================================================================
97--- django/db/backends/oracle/creation.py       (revision 4439)
98+++ django/db/backends/oracle/creation.py       (working copy)
99@@ -5,10 +5,10 @@
100     'CommaSeparatedIntegerField': 'varchar2(%(maxlength)s)',
101     'DateField':         'date',
102     'DateTimeField':     'date',
103-    'FileField':         'varchar2(100)',
104-    'FilePathField':     'varchar2(100)',
105+    'FileField':         'varchar2(%(maxlength)s)',
106+    'FilePathField':     'varchar2(%(maxlength)s)',
107     'FloatField':        'number(%(max_digits)s, %(decimal_places)s)',
108-    'ImageField':        'varchar2(100)',
109+    'ImageField':        'varchar2(%(maxlength)s)',
110     'IntegerField':      'integer',
111     'IPAddressField':    'char(15)',
112     'ManyToManyField':   None,