From 999758fc7a2d6fcb01eb40de937d4420f884788d Mon Sep 17 00:00:00 2001 From: Abraham Martin Date: Sat, 26 Jul 2014 18:48:36 +0200 Subject: [PATCH] Fixed #23101 db_table wasn't copied in deconstruct --- django/db/models/fields/related.py | 2 ++ tests/field_deconstruction/tests.py | 6 ++++++ 2 files changed, 8 insertions(+) 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):