1 | Index: django/db/models/fields/__init__.py |
---|
2 | =================================================================== |
---|
3 | --- django/db/models/fields/__init__.py (revision 3608) |
---|
4 | +++ django/db/models/fields/__init__.py (working copy) |
---|
5 | @@ -663,6 +663,14 @@ |
---|
6 | def get_manipulator_field_objs(self): |
---|
7 | return [forms.IntegerField] |
---|
8 | |
---|
9 | +class BigIntegerField(IntegerField): |
---|
10 | + def get_manipulator_field_objs(self): |
---|
11 | + return [forms.BigIntegerField] |
---|
12 | + |
---|
13 | +class PositiveBigIntegerField(IntegerField): |
---|
14 | + def get_manipulator_field_objs(self): |
---|
15 | + return [forms.PositiveBigIntegerField] |
---|
16 | + |
---|
17 | class IPAddressField(Field): |
---|
18 | def __init__(self, *args, **kwargs): |
---|
19 | kwargs['maxlength'] = 15 |
---|
20 | Index: django/db/backends/mysql/introspection.py |
---|
21 | =================================================================== |
---|
22 | --- django/db/backends/mysql/introspection.py (revision 3608) |
---|
23 | +++ django/db/backends/mysql/introspection.py (working copy) |
---|
24 | @@ -82,7 +82,7 @@ |
---|
25 | FIELD_TYPE.FLOAT: 'FloatField', |
---|
26 | FIELD_TYPE.INT24: 'IntegerField', |
---|
27 | FIELD_TYPE.LONG: 'IntegerField', |
---|
28 | - FIELD_TYPE.LONGLONG: 'IntegerField', |
---|
29 | + FIELD_TYPE.LONGLONG: 'BigIntegerField', |
---|
30 | FIELD_TYPE.SHORT: 'IntegerField', |
---|
31 | FIELD_TYPE.STRING: 'TextField', |
---|
32 | FIELD_TYPE.TIMESTAMP: 'DateTimeField', |
---|
33 | Index: django/db/backends/mysql/creation.py |
---|
34 | =================================================================== |
---|
35 | --- django/db/backends/mysql/creation.py (revision 3608) |
---|
36 | +++ django/db/backends/mysql/creation.py (working copy) |
---|
37 | @@ -14,12 +14,14 @@ |
---|
38 | 'FloatField': 'numeric(%(max_digits)s, %(decimal_places)s)', |
---|
39 | 'ImageField': 'varchar(100)', |
---|
40 | 'IntegerField': 'integer', |
---|
41 | + 'BigIntegerField': 'bigint', |
---|
42 | 'IPAddressField': 'char(15)', |
---|
43 | 'ManyToManyField': None, |
---|
44 | 'NullBooleanField': 'bool', |
---|
45 | 'OneToOneField': 'integer', |
---|
46 | 'PhoneNumberField': 'varchar(20)', |
---|
47 | 'PositiveIntegerField': 'integer UNSIGNED', |
---|
48 | + 'PositiveBigIntegerField': 'bigint UNSIGNED', |
---|
49 | 'PositiveSmallIntegerField': 'smallint UNSIGNED', |
---|
50 | 'SlugField': 'varchar(%(maxlength)s)', |
---|
51 | 'SmallIntegerField': 'smallint', |
---|
52 | Index: django/forms/__init__.py |
---|
53 | =================================================================== |
---|
54 | --- django/forms/__init__.py (revision 3608) |
---|
55 | +++ django/forms/__init__.py (working copy) |
---|
56 | @@ -738,6 +738,20 @@ |
---|
57 | if not 0 <= int(field_data) <= 32767: |
---|
58 | raise validators.CriticalValidationError, gettext("Enter a whole number between 0 and 32,767.") |
---|
59 | |
---|
60 | +class BigIntegerField(IntegerField): |
---|
61 | + def __init__(self, field_name, length=20, maxlength=None, is_required=False, validator_list=None, member_name=None): |
---|
62 | + if validator_list is None: validator_list = [] |
---|
63 | + validator_list = [self.isInteger] + validator_list |
---|
64 | + if member_name is not None: |
---|
65 | + self.member_name = member_name |
---|
66 | + IntegerField.__init__(self, field_name, length, maxlength, is_required, validator_list) |
---|
67 | + |
---|
68 | +class PositiveBigIntegerField(PositiveIntegerField): |
---|
69 | + def __init__(self, field_name, length=20, maxlength=None, is_required=False, validator_list=None): |
---|
70 | + if validator_list is None: validator_list = [] |
---|
71 | + validator_list = [self.isPositive] + validator_list |
---|
72 | + IntegerField.__init__(self, field_name, length, maxlength, is_required, validator_list) |
---|
73 | + |
---|
74 | class FloatField(TextField): |
---|
75 | def __init__(self, field_name, max_digits, decimal_places, is_required=False, validator_list=None): |
---|
76 | if validator_list is None: validator_list = [] |
---|
77 | Index: django/contrib/admin/views/doc.py |
---|
78 | =================================================================== |
---|
79 | --- django/contrib/admin/views/doc.py (revision 3608) |
---|
80 | +++ django/contrib/admin/views/doc.py (working copy) |
---|
81 | @@ -289,6 +289,7 @@ |
---|
82 | # If a column type is set to None, it won't be included in the output. |
---|
83 | DATA_TYPE_MAPPING = { |
---|
84 | 'AutoField' : _('Integer'), |
---|
85 | + 'BigIntegerField' : _('Integer'), |
---|
86 | 'BooleanField' : _('Boolean (Either True or False)'), |
---|
87 | 'CharField' : _('String (up to %(maxlength)s)'), |
---|
88 | 'CommaSeparatedIntegerField': _('Comma-separated integers'), |
---|
89 | @@ -306,6 +307,7 @@ |
---|
90 | 'NullBooleanField' : _('Boolean (Either True, False or None)'), |
---|
91 | 'OneToOneField' : _('Relation to parent model'), |
---|
92 | 'PhoneNumberField' : _('Phone number'), |
---|
93 | + 'PositiveBigIntegerField' : _('Integer'), |
---|
94 | 'PositiveIntegerField' : _('Integer'), |
---|
95 | 'PositiveSmallIntegerField' : _('Integer'), |
---|
96 | 'SlugField' : _('String (up to %(maxlength)s)'), |
---|