|
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 |