models.py 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. """
  2. Regression tests for defer() / only() behavior.
  3. """
  4. from django.db import models
  5. from django.utils.encoding import python_2_unicode_compatible
  6. @python_2_unicode_compatible
  7. class Item(models.Model):
  8. name = models.CharField(max_length=15)
  9. text = models.TextField(default="xyzzy")
  10. value = models.IntegerField()
  11. other_value = models.IntegerField(default=0)
  12. def __str__(self):
  13. return self.name
  14. class RelatedItem(models.Model):
  15. item = models.ForeignKey(Item)
  16. class ProxyRelated(RelatedItem):
  17. class Meta:
  18. proxy = True
  19. class Child(models.Model):
  20. name = models.CharField(max_length=10)
  21. value = models.IntegerField()
  22. @python_2_unicode_compatible
  23. class Leaf(models.Model):
  24. name = models.CharField(max_length=10)
  25. child = models.ForeignKey(Child)
  26. second_child = models.ForeignKey(Child, related_name="other", null=True)
  27. value = models.IntegerField(default=42)
  28. def __str__(self):
  29. return self.name
  30. class ResolveThis(models.Model):
  31. num = models.FloatField()
  32. name = models.CharField(max_length=16)
  33. class Proxy(Item):
  34. class Meta:
  35. proxy = True
  36. @python_2_unicode_compatible
  37. class SimpleItem(models.Model):
  38. name = models.CharField(max_length=15)
  39. value = models.IntegerField()
  40. def __str__(self):
  41. return self.name
  42. class Feature(models.Model):
  43. item = models.ForeignKey(SimpleItem)
  44. class SpecialFeature(models.Model):
  45. feature = models.ForeignKey(Feature)
  46. class OneToOneItem(models.Model):
  47. item = models.OneToOneField(Item, related_name="one_to_one_item")
  48. name = models.CharField(max_length=15)
  49. class ItemAndSimpleItem(models.Model):
  50. item = models.ForeignKey(Item)
  51. simple = models.ForeignKey(SimpleItem)
  52. class Profile(models.Model):
  53. profile1 = models.CharField(max_length=1000, default='profile1')
  54. class Location(models.Model):
  55. location1 = models.CharField(max_length=1000, default='location1')
  56. class Request(models.Model):
  57. profile = models.ForeignKey(Profile, null=True, blank=True)
  58. location = models.ForeignKey(Location)
  59. items = models.ManyToManyField(Item)
  60. request1 = models.CharField(default='request1', max_length=1000)
  61. request2 = models.CharField(default='request2', max_length=1000)
  62. request3 = models.CharField(default='request3', max_length=1000)
  63. request4 = models.CharField(default='request4', max_length=1000)
  64. class Base(models.Model):
  65. text = models.TextField()
  66. class Derived(Base):
  67. other_text = models.TextField()