summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/fields/related.py2
-rw-r--r--tests/regressiontests/many_to_one_regress/tests.py4
2 files changed, 5 insertions, 1 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index fbb40d9175..a16f9553c6 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -364,7 +364,7 @@ class ReverseSingleRelatedObjectDescriptor(object):
def __set__(self, instance, value):
if instance is None:
- raise AttributeError("%s must be accessed via instance" % self._field.name)
+ raise AttributeError("%s must be accessed via instance" % self.field.name)
# If null=True, we can assign null here, but otherwise the value needs
# to be an instance of the related class.
diff --git a/tests/regressiontests/many_to_one_regress/tests.py b/tests/regressiontests/many_to_one_regress/tests.py
index 9e04fb4542..481a037139 100644
--- a/tests/regressiontests/many_to_one_regress/tests.py
+++ b/tests/regressiontests/many_to_one_regress/tests.py
@@ -58,6 +58,10 @@ class ManyToOneRegressionTests(TestCase):
self.assertRaises(ValueError, Child, name='xyzzy', parent=None)
self.assertRaises(ValueError, Child.objects.create, name='xyzzy', parent=None)
+ # Trying to assign to unbound attribute raises AttributeError
+ self.assertRaisesRegexp(AttributeError, "must be accessed via instance",
+ Child.parent.__set__, None, p)
+
# Creation using keyword argument should cache the related object.
p = Parent.objects.get(name="Parent")
c = Child(parent=p)