diff options
Diffstat (limited to 'parts/django/tests/modeltests/mutually_referential')
3 files changed, 39 insertions, 0 deletions
diff --git a/parts/django/tests/modeltests/mutually_referential/__init__.py b/parts/django/tests/modeltests/mutually_referential/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/parts/django/tests/modeltests/mutually_referential/__init__.py diff --git a/parts/django/tests/modeltests/mutually_referential/models.py b/parts/django/tests/modeltests/mutually_referential/models.py new file mode 100644 index 0000000..db05cbc --- /dev/null +++ b/parts/django/tests/modeltests/mutually_referential/models.py @@ -0,0 +1,19 @@ +""" +24. Mutually referential many-to-one relationships + +Strings can be used instead of model literals to set up "lazy" relations. +""" + +from django.db.models import * + +class Parent(Model): + name = CharField(max_length=100) + + # Use a simple string for forward declarations. + bestchild = ForeignKey("Child", null=True, related_name="favoured_by") + +class Child(Model): + name = CharField(max_length=100) + + # You can also explicitally specify the related app. + parent = ForeignKey("mutually_referential.Parent") diff --git a/parts/django/tests/modeltests/mutually_referential/tests.py b/parts/django/tests/modeltests/mutually_referential/tests.py new file mode 100644 index 0000000..101d67c --- /dev/null +++ b/parts/django/tests/modeltests/mutually_referential/tests.py @@ -0,0 +1,20 @@ +from django.test import TestCase +from models import Parent, Child + +class MutuallyReferentialTests(TestCase): + + def test_mutually_referential(self): + # Create a Parent + q = Parent(name='Elizabeth') + q.save() + + # Create some children + c = q.child_set.create(name='Charles') + e = q.child_set.create(name='Edward') + + # Set the best child + # No assertion require here; if basic assignment and + # deletion works, the test passes. + q.bestchild = c + q.save() + q.delete() |