diff options
| author | Simon Charette <charette.s@gmail.com> | 2013-08-20 01:52:32 -0400 |
|---|---|---|
| committer | Simon Charette <charette.s@gmail.com> | 2013-10-03 13:20:05 -0400 |
| commit | fa2e1371cda1e72d82b4133ad0b49a18e43ba411 (patch) | |
| tree | 9d732e2ac0eb0b89cfc37ecccab41fe64eb31b33 /tests | |
| parent | c4db7f075e269411287ff14b5518412250ba455f (diff) | |
Fixed #21216 -- Allow `OneToOneField` reverse accessor to be hidden.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/one_to_one_regress/models.py | 15 | ||||
| -rw-r--r-- | tests/one_to_one_regress/tests.py | 16 |
2 files changed, 26 insertions, 5 deletions
diff --git a/tests/one_to_one_regress/models.py b/tests/one_to_one_regress/models.py index 9b65edf2ab..3cd4e17604 100644 --- a/tests/one_to_one_regress/models.py +++ b/tests/one_to_one_regress/models.py @@ -12,6 +12,7 @@ class Place(models.Model): def __str__(self): return "%s the place" % self.name + @python_2_unicode_compatible class Restaurant(models.Model): place = models.OneToOneField(Place) @@ -21,6 +22,7 @@ class Restaurant(models.Model): def __str__(self): return "%s the restaurant" % self.place.name + @python_2_unicode_compatible class Bar(models.Model): place = models.OneToOneField(Place) @@ -29,23 +31,32 @@ class Bar(models.Model): def __str__(self): return "%s the bar" % self.place.name + class UndergroundBar(models.Model): place = models.OneToOneField(Place, null=True) serves_cocktails = models.BooleanField(default=True) + @python_2_unicode_compatible class Favorites(models.Model): - name = models.CharField(max_length = 50) + name = models.CharField(max_length=50) restaurants = models.ManyToManyField(Restaurant) def __str__(self): return "Favorites for %s" % self.name + class Target(models.Model): pass + class Pointer(models.Model): other = models.OneToOneField(Target, primary_key=True) + class Pointer2(models.Model): - other = models.OneToOneField(Target) + other = models.OneToOneField(Target, related_name='second_pointer') + + +class HiddenPointer(models.Model): + target = models.OneToOneField(Target, related_name='hidden+') diff --git a/tests/one_to_one_regress/tests.py b/tests/one_to_one_regress/tests.py index 3dfe3e466e..da4309e821 100644 --- a/tests/one_to_one_regress/tests.py +++ b/tests/one_to_one_regress/tests.py @@ -2,7 +2,8 @@ from __future__ import unicode_literals from django.test import TestCase -from .models import Place, Restaurant, Bar, Favorites, Target, UndergroundBar +from .models import (Bar, Favorites, HiddenPointer, Place, Restaurant, Target, + UndergroundBar) class OneToOneRegressionTests(TestCase): @@ -125,11 +126,11 @@ class OneToOneRegressionTests(TestCase): [] ) self.assertQuerysetEqual( - Target.objects.filter(pointer2=None), + Target.objects.filter(second_pointer=None), ['<Target: Target object>'] ) self.assertQuerysetEqual( - Target.objects.exclude(pointer2=None), + Target.objects.exclude(second_pointer=None), [] ) @@ -250,3 +251,12 @@ class OneToOneRegressionTests(TestCase): self.p1.delete() self.assertTrue(UndergroundBar.objects.filter(pk=u.pk).exists()) self.assertIsNone(UndergroundBar.objects.get(pk=u.pk).place) + + def test_hidden_accessor(self): + """ + When a '+' ending related name is specified no reverse accessor should + be added to the related model. + """ + self.assertFalse( + hasattr(Target, HiddenPointer._meta.get_field('target').related.get_accessor_name()) + ) |
