Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Browse files

Fixed #12190 -- Corrected a regression in the ability to instantiate …

…ForeignKeys outside of models. Thanks to jittat for the report.

git-svn-id: bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent ef65854 commit 70f9a4f6ceb1bc4a33714e3b1cfb99175e2fcf3f @freakboy3742 freakboy3742 committed
4 django/db/models/fields/
@@ -695,6 +695,10 @@ def __init__(self, to, to_field=None, rel_class=ManyToOneRel, **kwargs):
assert isinstance(to, basestring), "%s(%r) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string %r" % (self.__class__.__name__, to, RECURSIVE_RELATIONSHIP_CONSTANT)
assert not to._meta.abstract, "%s cannot define a relation with abstract class %s" % (self.__class__.__name__, to._meta.object_name)
+ # For backwards compatibility purposes, we need to *try* and set
+ # the to_field during FK construction. It won't be guaranteed to
+ # be correct until contribute_to_class is called. Refs #12190.
+ to_field = to_field or ( and
kwargs['verbose_name'] = kwargs.get('verbose_name', None)
kwargs['rel'] = rel_class(to, to_field,
6 tests/regressiontests/many_to_one_regress/
@@ -167,4 +167,10 @@ def __unicode__(self):
ValueError: Cannot assign "<Child: Child object>": "Child.parent" must be a "Parent" instance.
+# Regression for #12190 -- Should be able to instantiate a FK
+# outside of a model, and interrogate its related field.
+>>> cat = models.ForeignKey(Category)
+>>> cat.rel.get_related_field().name

0 comments on commit 70f9a4f

Please sign in to comment.
Something went wrong with that request. Please try again.