diff options
Diffstat (limited to 'tests/many_to_one_regress/models.py')
-rw-r--r-- | tests/many_to_one_regress/models.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/many_to_one_regress/models.py b/tests/many_to_one_regress/models.py new file mode 100644 index 0000000000..0ac0871793 --- /dev/null +++ b/tests/many_to_one_regress/models.py @@ -0,0 +1,56 @@ +""" +Regression tests for a few ForeignKey bugs. +""" +from __future__ import unicode_literals + +from django.db import models +from django.utils.encoding import python_2_unicode_compatible + +# If ticket #1578 ever slips back in, these models will not be able to be +# created (the field names being lower-cased versions of their opposite +# classes is important here). + +class First(models.Model): + second = models.IntegerField() + +class Second(models.Model): + first = models.ForeignKey(First, related_name = 'the_first') + +# Protect against repetition of #1839, #2415 and #2536. +class Third(models.Model): + name = models.CharField(max_length=20) + third = models.ForeignKey('self', null=True, related_name='child_set') + +class Parent(models.Model): + name = models.CharField(max_length=20) + bestchild = models.ForeignKey('Child', null=True, related_name='favored_by') + +class Child(models.Model): + name = models.CharField(max_length=20) + parent = models.ForeignKey(Parent) + + +# Multiple paths to the same model (#7110, #7125) +@python_2_unicode_compatible +class Category(models.Model): + name = models.CharField(max_length=20) + + def __str__(self): + return self.name + +class Record(models.Model): + category = models.ForeignKey(Category) + +@python_2_unicode_compatible +class Relation(models.Model): + left = models.ForeignKey(Record, related_name='left_set') + right = models.ForeignKey(Record, related_name='right_set') + + def __str__(self): + return "%s - %s" % (self.left.category.name, self.right.category.name) + +class Car(models.Model): + make = models.CharField(max_length=100, null=True, unique=True) + +class Driver(models.Model): + car = models.ForeignKey(Car, to_field='make', null=True, related_name='drivers') |