Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #20207 -- Handle ManyToManyField with a unicode name correctly.

  • Loading branch information...
commit 216580e03499e035b93283df00fcc03b346fef7b 1 parent a49e7dd
@charettes charettes authored
View
2  django/db/models/fields/related.py
@@ -1327,7 +1327,7 @@ def set_managed(field, model, cls):
'verbose_name_plural': '%(from)s-%(to)s relationships' % {'from': from_, 'to': to},
})
# Construct and return the new class.
- return type(name, (models.Model,), {
+ return type(str(name), (models.Model,), {
'Meta': meta,
'__module__': klass.__module__,
from_: models.ForeignKey(klass, related_name='%s+' % name, db_tablespace=field.db_tablespace, db_constraint=field.rel.db_constraint),
View
5 tests/many_to_many/models.py
@@ -6,6 +6,7 @@
In this example, an ``Article`` can be published in multiple ``Publication``
objects, and a ``Publication`` has multiple ``Article`` objects.
"""
+from __future__ import unicode_literals
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@@ -24,7 +25,9 @@ class Meta:
@python_2_unicode_compatible
class Article(models.Model):
headline = models.CharField(max_length=100)
- publications = models.ManyToManyField(Publication)
+ # Assign a unicode string as name to make sure the intermediary model is
+ # correctly created. Refs #20207
+ publications = models.ManyToManyField(Publication, name='publications')
def __str__(self):
return self.headline
Please sign in to comment.
Something went wrong with that request. Please try again.