models.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from __future__ import unicode_literals
  2. from django.db import models
  3. from django.utils.encoding import python_2_unicode_compatible
  4. try:
  5. from PIL import Image
  6. except ImportError:
  7. Image = None
  8. @python_2_unicode_compatible
  9. class CaseTestModel(models.Model):
  10. integer = models.IntegerField()
  11. integer2 = models.IntegerField(null=True)
  12. string = models.CharField(max_length=100, default='')
  13. big_integer = models.BigIntegerField(null=True)
  14. binary = models.BinaryField(default=b'')
  15. boolean = models.BooleanField(default=False)
  16. date = models.DateField(null=True, db_column='date_field')
  17. date_time = models.DateTimeField(null=True)
  18. decimal = models.DecimalField(max_digits=2, decimal_places=1, null=True, db_column='decimal_field')
  19. duration = models.DurationField(null=True)
  20. email = models.EmailField(default='')
  21. file = models.FileField(null=True, db_column='file_field')
  22. file_path = models.FilePathField(null=True)
  23. float = models.FloatField(null=True, db_column='float_field')
  24. if Image:
  25. image = models.ImageField(null=True)
  26. generic_ip_address = models.GenericIPAddressField(null=True)
  27. null_boolean = models.NullBooleanField()
  28. positive_integer = models.PositiveIntegerField(null=True)
  29. positive_small_integer = models.PositiveSmallIntegerField(null=True)
  30. slug = models.SlugField(default='')
  31. small_integer = models.SmallIntegerField(null=True)
  32. text = models.TextField(default='')
  33. time = models.TimeField(null=True, db_column='time_field')
  34. url = models.URLField(default='')
  35. uuid = models.UUIDField(null=True)
  36. fk = models.ForeignKey('self', models.CASCADE, null=True)
  37. def __str__(self):
  38. return "%i, %s" % (self.integer, self.string)
  39. @python_2_unicode_compatible
  40. class O2OCaseTestModel(models.Model):
  41. o2o = models.OneToOneField(CaseTestModel, models.CASCADE, related_name='o2o_rel')
  42. integer = models.IntegerField()
  43. def __str__(self):
  44. return "%i, %s" % (self.id, self.o2o)
  45. @python_2_unicode_compatible
  46. class FKCaseTestModel(models.Model):
  47. fk = models.ForeignKey(CaseTestModel, models.CASCADE, related_name='fk_rel')
  48. integer = models.IntegerField()
  49. def __str__(self):
  50. return "%i, %s" % (self.id, self.fk)
  51. @python_2_unicode_compatible
  52. class Client(models.Model):
  53. REGULAR = 'R'
  54. GOLD = 'G'
  55. PLATINUM = 'P'
  56. ACCOUNT_TYPE_CHOICES = (
  57. (REGULAR, 'Regular'),
  58. (GOLD, 'Gold'),
  59. (PLATINUM, 'Platinum'),
  60. )
  61. name = models.CharField(max_length=50)
  62. registered_on = models.DateField()
  63. account_type = models.CharField(
  64. max_length=1,
  65. choices=ACCOUNT_TYPE_CHOICES,
  66. default=REGULAR,
  67. )
  68. def __str__(self):
  69. return self.name