Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

[1.5.x] Fixed #20207 -- Handle ManyToManyField with a unicode name co…

…rrectly.

Backport of 216580e.
  • Loading branch information...
commit d04e8f8c7869b79a6f848a94bd51ce71223c2df2 1 parent a15a3e9
@charettes charettes authored
View
2  django/db/models/fields/related.py
@@ -1172,7 +1172,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),
View
5 tests/modeltests/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.