summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbraham Martin <abraham@firemac.local>2014-07-26 18:48:36 +0200
committerAbraham Martin <abraham@firemac.local>2014-07-26 18:48:36 +0200
commit999758fc7a2d6fcb01eb40de937d4420f884788d (patch)
tree622a53779e881ed25f07626a1554f62544d2884c
parent7e708a2536d4828d06f7aa4002fbd5cfc20bef16 (diff)
Fixed #23101 db_table wasn't copied in deconstruct
-rw-r--r--django/db/models/fields/related.py2
-rw-r--r--tests/field_deconstruction/tests.py6
2 files changed, 8 insertions, 0 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index 78815c2420..2fb6af6c7f 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -2088,6 +2088,8 @@ class ManyToManyField(RelatedField):
def deconstruct(self):
name, path, args, kwargs = super(ManyToManyField, self).deconstruct()
# Handle the simpler arguments
+ if self.db_table is not None:
+ kwargs['db_table'] = self.db_table
if self.rel.db_constraint is not True:
kwargs['db_constraint'] = self.rel.db_constraint
if "help_text" in kwargs:
diff --git a/tests/field_deconstruction/tests.py b/tests/field_deconstruction/tests.py
index 04d4c6a6ad..9a330b2998 100644
--- a/tests/field_deconstruction/tests.py
+++ b/tests/field_deconstruction/tests.py
@@ -271,6 +271,12 @@ class FieldDeconstructionTests(TestCase):
self.assertEqual(path, "django.db.models.ManyToManyField")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"to": "auth.Permission", "through": "auth.Group"})
+ # Test custom db_table
+ field = models.ManyToManyField("auth.Permission", db_table="custom_table")
+ name, path, args, kwargs = field.deconstruct()
+ self.assertEqual(path, "django.db.models.ManyToManyField")
+ self.assertEqual(args, [])
+ self.assertEqual(kwargs, {"to": "auth.Permission", "db_table": "custom_table"})
@override_settings(AUTH_USER_MODEL="auth.Permission")
def test_many_to_many_field_swapped(self):