1. """
    
  2. Regression tests for defer() / only() behavior.
    
  3. """
    
  4. 
    
  5. from django.db import models
    
  6. 
    
  7. 
    
  8. class Item(models.Model):
    
  9.     name = models.CharField(max_length=15)
    
  10.     text = models.TextField(default="xyzzy")
    
  11.     value = models.IntegerField()
    
  12.     other_value = models.IntegerField(default=0)
    
  13. 
    
  14. 
    
  15. class RelatedItem(models.Model):
    
  16.     item = models.ForeignKey(Item, models.CASCADE)
    
  17. 
    
  18. 
    
  19. class ProxyRelated(RelatedItem):
    
  20.     class Meta:
    
  21.         proxy = True
    
  22. 
    
  23. 
    
  24. class Child(models.Model):
    
  25.     name = models.CharField(max_length=10)
    
  26.     value = models.IntegerField()
    
  27. 
    
  28. 
    
  29. class Leaf(models.Model):
    
  30.     name = models.CharField(max_length=10)
    
  31.     child = models.ForeignKey(Child, models.CASCADE)
    
  32.     second_child = models.ForeignKey(
    
  33.         Child, models.SET_NULL, related_name="other", null=True
    
  34.     )
    
  35.     value = models.IntegerField(default=42)
    
  36. 
    
  37. 
    
  38. class ResolveThis(models.Model):
    
  39.     num = models.FloatField()
    
  40.     name = models.CharField(max_length=16)
    
  41. 
    
  42. 
    
  43. class Proxy(Item):
    
  44.     class Meta:
    
  45.         proxy = True
    
  46. 
    
  47. 
    
  48. class SimpleItem(models.Model):
    
  49.     name = models.CharField(max_length=15)
    
  50.     value = models.IntegerField()
    
  51. 
    
  52. 
    
  53. class Feature(models.Model):
    
  54.     item = models.ForeignKey(SimpleItem, models.CASCADE)
    
  55. 
    
  56. 
    
  57. class SpecialFeature(models.Model):
    
  58.     feature = models.ForeignKey(Feature, models.CASCADE)
    
  59. 
    
  60. 
    
  61. class OneToOneItem(models.Model):
    
  62.     item = models.OneToOneField(Item, models.CASCADE, related_name="one_to_one_item")
    
  63.     name = models.CharField(max_length=15)
    
  64. 
    
  65. 
    
  66. class ItemAndSimpleItem(models.Model):
    
  67.     item = models.ForeignKey(Item, models.CASCADE)
    
  68.     simple = models.ForeignKey(SimpleItem, models.CASCADE)
    
  69. 
    
  70. 
    
  71. class Profile(models.Model):
    
  72.     profile1 = models.CharField(max_length=255, default="profile1")
    
  73. 
    
  74. 
    
  75. class Location(models.Model):
    
  76.     location1 = models.CharField(max_length=255, default="location1")
    
  77. 
    
  78. 
    
  79. class Request(models.Model):
    
  80.     profile = models.ForeignKey(Profile, models.SET_NULL, null=True, blank=True)
    
  81.     location = models.ForeignKey(Location, models.CASCADE)
    
  82.     items = models.ManyToManyField(Item)
    
  83. 
    
  84.     request1 = models.CharField(default="request1", max_length=255)
    
  85.     request2 = models.CharField(default="request2", max_length=255)
    
  86.     request3 = models.CharField(default="request3", max_length=255)
    
  87.     request4 = models.CharField(default="request4", max_length=255)
    
  88. 
    
  89. 
    
  90. class Base(models.Model):
    
  91.     text = models.TextField()
    
  92. 
    
  93. 
    
  94. class Derived(Base):
    
  95.     other_text = models.TextField()