mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
[1.7.x] Fixed #23987 -- Made SQLite SchemaEditor always use effective_default().
Backport of 089047331d from master
This commit is contained in:
committed by
Tim Graham
parent
eb632bfba5
commit
1690b92b0d
@@ -1180,3 +1180,27 @@ class SchemaTests(TransactionTestCase):
|
||||
}
|
||||
)
|
||||
editor.alter_field(model, get_field(Author, field_class=ForeignKey), field)
|
||||
|
||||
def test_add_field_use_effective_default(self):
|
||||
"""
|
||||
#23987 - effective_default() should be used as the field default when
|
||||
adding a new field.
|
||||
"""
|
||||
# Create the table
|
||||
with connection.schema_editor() as editor:
|
||||
editor.create_model(Author)
|
||||
# Ensure there's no surname field
|
||||
columns = self.column_classes(Author)
|
||||
self.assertNotIn("surname", columns)
|
||||
# Create a row
|
||||
Author.objects.create(name='Anonymous1')
|
||||
# Add new CharField to ensure default will be used from effective_default
|
||||
new_field = CharField(max_length=15, blank=True)
|
||||
new_field.set_attributes_from_name("surname")
|
||||
with connection.schema_editor() as editor:
|
||||
editor.add_field(Author, new_field)
|
||||
# Ensure field was added with the right default
|
||||
with connection.cursor() as cursor:
|
||||
cursor.execute("SELECT surname FROM schema_author;")
|
||||
item = cursor.fetchall()[0]
|
||||
self.assertEqual(item[0], '')
|
||||
|
||||
Reference in New Issue
Block a user