models.py 2.63 KB
Newer Older
1 2 3 4
"""
Regression tests for defer() / only() behavior.
"""

5
from django.db import models
6
from django.utils.encoding import python_2_unicode_compatible
7

8

9
@python_2_unicode_compatible
10
class Item(models.Model):
11
    name = models.CharField(max_length=15)
12 13 14 15
    text = models.TextField(default="xyzzy")
    value = models.IntegerField()
    other_value = models.IntegerField(default=0)

16
    def __str__(self):
17 18
        return self.name

Jason Myers's avatar
Jason Myers committed
19

20
class RelatedItem(models.Model):
21
    item = models.ForeignKey(Item, models.CASCADE)
22

Jason Myers's avatar
Jason Myers committed
23

24 25 26 27 28
class ProxyRelated(RelatedItem):
    class Meta:
        proxy = True


29 30 31 32
class Child(models.Model):
    name = models.CharField(max_length=10)
    value = models.IntegerField()

Jason Myers's avatar
Jason Myers committed
33

34
@python_2_unicode_compatible
35 36
class Leaf(models.Model):
    name = models.CharField(max_length=10)
37 38
    child = models.ForeignKey(Child, models.CASCADE)
    second_child = models.ForeignKey(Child, models.SET_NULL, related_name="other", null=True)
39 40
    value = models.IntegerField(default=42)

41
    def __str__(self):
42 43
        return self.name

Jason Myers's avatar
Jason Myers committed
44

45 46 47
class ResolveThis(models.Model):
    num = models.FloatField()
    name = models.CharField(max_length=16)
48

Jason Myers's avatar
Jason Myers committed
49

50 51 52
class Proxy(Item):
    class Meta:
        proxy = True
53

Jason Myers's avatar
Jason Myers committed
54

55
@python_2_unicode_compatible
56 57 58 59
class SimpleItem(models.Model):
    name = models.CharField(max_length=15)
    value = models.IntegerField()

60
    def __str__(self):
61 62
        return self.name

Jason Myers's avatar
Jason Myers committed
63

64
class Feature(models.Model):
65
    item = models.ForeignKey(SimpleItem, models.CASCADE)
66

Jason Myers's avatar
Jason Myers committed
67

68
class SpecialFeature(models.Model):
69
    feature = models.ForeignKey(Feature, models.CASCADE)
70

Jason Myers's avatar
Jason Myers committed
71

72
class OneToOneItem(models.Model):
73
    item = models.OneToOneField(Item, models.CASCADE, related_name="one_to_one_item")
74 75
    name = models.CharField(max_length=15)

Jason Myers's avatar
Jason Myers committed
76

77
class ItemAndSimpleItem(models.Model):
78 79
    item = models.ForeignKey(Item, models.CASCADE)
    simple = models.ForeignKey(SimpleItem, models.CASCADE)
80

Jason Myers's avatar
Jason Myers committed
81

82
class Profile(models.Model):
83
    profile1 = models.CharField(max_length=1000, default='profile1')
84

Jason Myers's avatar
Jason Myers committed
85

86
class Location(models.Model):
87
    location1 = models.CharField(max_length=1000, default='location1')
88

Jason Myers's avatar
Jason Myers committed
89

90
class Request(models.Model):
91 92
    profile = models.ForeignKey(Profile, models.SET_NULL, null=True, blank=True)
    location = models.ForeignKey(Location, models.CASCADE)
93 94
    items = models.ManyToManyField(Item)

95 96 97 98
    request1 = models.CharField(default='request1', max_length=1000)
    request2 = models.CharField(default='request2', max_length=1000)
    request3 = models.CharField(default='request3', max_length=1000)
    request4 = models.CharField(default='request4', max_length=1000)
99 100 101 102 103 104 105 106


class Base(models.Model):
    text = models.TextField()


class Derived(Base):
    other_text = models.TextField()