Fixed #12190 -- Corrected a regression in the ability to instantiate ForeignKeys outside of models. Thanks to jittat for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11730 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
ef65854a77
commit
70f9a4f6ce
|
@ -695,6 +695,10 @@ class ForeignKey(RelatedField, Field):
|
||||||
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 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)
|
||||||
else:
|
else:
|
||||||
assert not to._meta.abstract, "%s cannot define a relation with abstract class %s" % (self.__class__.__name__, to._meta.object_name)
|
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 (to._meta.pk and to._meta.pk.name)
|
||||||
kwargs['verbose_name'] = kwargs.get('verbose_name', None)
|
kwargs['verbose_name'] = kwargs.get('verbose_name', None)
|
||||||
|
|
||||||
kwargs['rel'] = rel_class(to, to_field,
|
kwargs['rel'] = rel_class(to, to_field,
|
||||||
|
|
|
@ -167,4 +167,10 @@ Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValueError: Cannot assign "<Child: Child object>": "Child.parent" must be a "Parent" instance.
|
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
|
||||||
|
'id'
|
||||||
|
|
||||||
"""}
|
"""}
|
||||||
|
|
Loading…
Reference in New Issue