mirror of https://github.com/django/django.git
Fixed #29569 -- Fixed Cast() with AutoField and BigAutoField.
This commit is contained in:
parent
6429961418
commit
ac25dd1f8d
|
@ -18,6 +18,8 @@ class DatabaseOperations(BaseDatabaseOperations):
|
|||
'PositiveIntegerField': (0, 4294967295),
|
||||
}
|
||||
cast_data_types = {
|
||||
'AutoField': 'signed integer',
|
||||
'BigAutoField': 'signed integer',
|
||||
'CharField': 'char(%(max_length)s)',
|
||||
'TextField': 'char',
|
||||
'IntegerField': 'signed integer',
|
||||
|
|
|
@ -52,6 +52,8 @@ END;
|
|||
# Oracle doesn't support string without precision; use the max string size.
|
||||
cast_char_field_without_max_length = 'NVARCHAR2(2000)'
|
||||
cast_data_types = {
|
||||
'AutoField': 'NUMBER(11)',
|
||||
'BigAutoField': 'NUMBER(19)',
|
||||
'TextField': cast_char_field_without_max_length,
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,10 @@ from django.db.backends.base.operations import BaseDatabaseOperations
|
|||
class DatabaseOperations(BaseDatabaseOperations):
|
||||
cast_char_field_without_max_length = 'varchar'
|
||||
explain_prefix = 'EXPLAIN'
|
||||
cast_data_types = {
|
||||
'AutoField': 'integer',
|
||||
'BigAutoField': 'bigint',
|
||||
}
|
||||
|
||||
def unification_cast_sql(self, output_field):
|
||||
internal_type = output_field.get_internal_type()
|
||||
|
|
|
@ -39,6 +39,8 @@ class CastTests(TestCase):
|
|||
|
||||
def test_cast_to_integer(self):
|
||||
for field_class in (
|
||||
models.AutoField,
|
||||
models.BigAutoField,
|
||||
models.IntegerField,
|
||||
models.BigIntegerField,
|
||||
models.SmallIntegerField,
|
||||
|
|
Loading…
Reference in New Issue