parts/django/tests/regressiontests/null_fk_ordering/models.py
changeset 307 c6bca38c1cbf
equal deleted inserted replaced
306:5ff1fc726848 307:c6bca38c1cbf
       
     1 """
       
     2 Regression tests for proper working of ForeignKey(null=True). Tests these bugs:
       
     3 
       
     4     * #7512: including a nullable foreign key reference in Meta ordering has un
       
     5 xpected results
       
     6 
       
     7 """
       
     8 
       
     9 from django.db import models
       
    10 
       
    11 # The first two models represent a very simple null FK ordering case.
       
    12 class Author(models.Model):
       
    13     name = models.CharField(max_length=150)
       
    14 
       
    15 class Article(models.Model):
       
    16     title = models.CharField(max_length=150)
       
    17     author = models.ForeignKey(Author, null=True)
       
    18 
       
    19     def __unicode__(self):
       
    20         return u'Article titled: %s' % (self.title, )
       
    21 
       
    22     class Meta:
       
    23         ordering = ['author__name', ]
       
    24 
       
    25 
       
    26 # These following 4 models represent a far more complex ordering case.
       
    27 class SystemInfo(models.Model):
       
    28     system_name = models.CharField(max_length=32)
       
    29 
       
    30 class Forum(models.Model):
       
    31     system_info = models.ForeignKey(SystemInfo)
       
    32     forum_name = models.CharField(max_length=32)
       
    33 
       
    34 class Post(models.Model):
       
    35     forum = models.ForeignKey(Forum, null=True)
       
    36     title = models.CharField(max_length=32)
       
    37 
       
    38     def __unicode__(self):
       
    39         return self.title
       
    40 
       
    41 class Comment(models.Model):
       
    42     post = models.ForeignKey(Post, null=True)
       
    43     comment_text = models.CharField(max_length=250)
       
    44 
       
    45     class Meta:
       
    46         ordering = ['post__forum__system_info__system_name', 'comment_text']
       
    47 
       
    48     def __unicode__(self):
       
    49         return self.comment_text