diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2008-05-29 12:17:03 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2008-05-29 12:17:03 +0000 |
| commit | 5837a45bd94ac06c7e2036b89701e579a2fe9faf (patch) | |
| tree | a74e422b05a094a55b6725162e55546113dfe650 | |
| parent | 812d8d40bd27a65e7bb7d2538576a96070363572 (diff) | |
Fixed #7173 -- Corrected the caching of objects in reverse OneToOne relationships. Thanks, Travis Terry.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7561 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/db/models/fields/related.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/one_to_one_regress/models.py | 16 |
2 files changed, 17 insertions, 1 deletions
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 58e8b82a7a..e3677c2f55 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -165,7 +165,7 @@ class SingleRelatedObjectDescriptor(object): # SingleRelatedObjectDescriptor instance. def __init__(self, related): self.related = related - self.cache_name = '_%s_cache' % related.field.name + self.cache_name = '_%s_cache' % related.get_accessor_name() def __get__(self, instance, instance_type=None): if instance is None: diff --git a/tests/regressiontests/one_to_one_regress/models.py b/tests/regressiontests/one_to_one_regress/models.py index c5ffd3fb3c..c68fdfc780 100644 --- a/tests/regressiontests/one_to_one_regress/models.py +++ b/tests/regressiontests/one_to_one_regress/models.py @@ -15,6 +15,13 @@ class Restaurant(models.Model): def __unicode__(self): return u"%s the restaurant" % self.place.name +class Bar(models.Model): + place = models.OneToOneField(Place) + serves_cocktails = models.BooleanField() + + def __unicode__(self): + return u"%s the bar" % self.place.name + class Favorites(models.Model): name = models.CharField(max_length = 50) restaurants = models.ManyToManyField(Restaurant) @@ -34,4 +41,13 @@ __test__ = {'API_TESTS':""" >>> f.restaurants = [r] >>> f.restaurants.all() [<Restaurant: Demon Dogs the restaurant>] + +# Regression test for #7173: Check that the name of the cache for the +# reverse object is correct. +>>> b = Bar(place=p1, serves_cocktails=False) +>>> b.save() +>>> p1.restaurant +<Restaurant: Demon Dogs the restaurant> +>>> p1.bar +<Bar: Demon Dogs the bar> """} |
