[1.7.x] Revert "Fixed #23455 -- Forced related_name to be a unicode string during deconstruction."

This reverts commit 45bd7b3bd9.

This is a backport of 8aaf51f94c from master.
This commit is contained in:
Carl Meyer 2014-12-11 12:36:13 -07:00
parent c64286c62b
commit f8b4cf4022
3 changed files with 7 additions and 15 deletions

View File

@ -14,7 +14,7 @@ from django.db.models.lookups import IsNull
from django.db.models.related import RelatedObject, PathInfo
from django.db.models.query import QuerySet
from django.db.models.sql.datastructures import Col
from django.utils.encoding import force_text, smart_text
from django.utils.encoding import smart_text
from django.utils import six
from django.utils.deprecation import RenameMethodsBase, RemovedInDjango18Warning
from django.utils.translation import ugettext_lazy as _
@ -1376,7 +1376,7 @@ class ForeignObject(RelatedField):
kwargs['from_fields'] = self.from_fields
kwargs['to_fields'] = self.to_fields
if self.rel.related_name is not None:
kwargs['related_name'] = force_text(self.rel.related_name)
kwargs['related_name'] = self.rel.related_name
if self.rel.related_query_name is not None:
kwargs['related_query_name'] = self.rel.related_query_name
if self.rel.on_delete != CASCADE:
@ -2112,7 +2112,7 @@ class ManyToManyField(RelatedField):
if self.rel.db_constraint is not True:
kwargs['db_constraint'] = self.rel.db_constraint
if self.rel.related_name is not None:
kwargs['related_name'] = force_text(self.rel.related_name)
kwargs['related_name'] = self.rel.related_name
if self.rel.related_query_name is not None:
kwargs['related_query_name'] = self.rel.related_query_name
# Rel needs more work.

View File

@ -124,3 +124,7 @@ Bugfixes
* Fixed a crash in the admin when using "Save as new" and also deleting a
related inline (:ticket:`23857`).
* Removed auto-conversion of ``related_name`` to unicode in field
deconstruction, to maintain consistency of bytes/text in migrations matching
the original values (:ticket:`23455` and :ticket:`23982`).

View File

@ -211,12 +211,6 @@ class FieldDeconstructionTests(TestCase):
self.assertEqual(path, "django.db.models.ForeignKey")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"to": "auth.Permission", "related_name": "foobar"})
# Test related_name unicode conversion
field = models.ForeignKey("auth.Permission", related_name=b"foobar")
name, path, args, kwargs = field.deconstruct()
self.assertEqual(path, "django.db.models.ForeignKey")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"to": "auth.Permission", "related_name": "foobar"})
@override_settings(AUTH_USER_MODEL="auth.Permission")
def test_foreign_key_swapped(self):
@ -297,12 +291,6 @@ class FieldDeconstructionTests(TestCase):
self.assertEqual(path, "django.db.models.ManyToManyField")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"to": "auth.Permission", "related_name": "custom_table"})
# Test related_name unicode conversion
field = models.ManyToManyField("auth.Permission", related_name=b"custom_table")
name, path, args, kwargs = field.deconstruct()
self.assertEqual(path, "django.db.models.ManyToManyField")
self.assertEqual(args, [])
self.assertEqual(kwargs, {"to": "auth.Permission", "related_name": "custom_table"})
@override_settings(AUTH_USER_MODEL="auth.Permission")
def test_many_to_many_field_swapped(self):