models.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. comma_separated_integer = models.CommaSeparatedIntegerField(max_length=100, default='')
  17. date = models.DateField(null=True, db_column='date_field')
  18. date_time = models.DateTimeField(null=True)
  19. decimal = models.DecimalField(max_digits=2, decimal_places=1, null=True, db_column='decimal_field')
  20. duration = models.DurationField(null=True)
  21. email = models.EmailField(default='')
  22. file = models.FileField(null=True, db_column='file_field')
  23. file_path = models.FilePathField(null=True)
  24. float = models.FloatField(null=True, db_column='float_field')
  25. if Image:
  26. image = models.ImageField(null=True)
  27. generic_ip_address = models.GenericIPAddressField(null=True)
  28. null_boolean = models.NullBooleanField()
  29. positive_integer = models.PositiveIntegerField(null=True)
  30. positive_small_integer = models.PositiveSmallIntegerField(null=True)
  31. slug = models.SlugField(default='')
  32. small_integer = models.SmallIntegerField(null=True)
  33. text = models.TextField(default='')
  34. time = models.TimeField(null=True, db_column='time_field')
  35. url = models.URLField(default='')
  36. uuid = models.UUIDField(null=True)
  37. fk = models.ForeignKey('self', models.CASCADE, null=True)
  38. def __str__(self):
  39. return "%i, %s" % (self.integer, self.string)
  40. @python_2_unicode_compatible
  41. class O2OCaseTestModel(models.Model):
  42. o2o = models.OneToOneField(CaseTestModel, models.CASCADE, related_name='o2o_rel')
  43. integer = models.IntegerField()
  44. def __str__(self):
  45. return "%i, %s" % (self.id, self.o2o)
  46. @python_2_unicode_compatible
  47. class FKCaseTestModel(models.Model):
  48. fk = models.ForeignKey(CaseTestModel, models.CASCADE, related_name='fk_rel')
  49. integer = models.IntegerField()
  50. def __str__(self):
  51. return "%i, %s" % (self.id, self.fk)
  52. @python_2_unicode_compatible
  53. class Client(models.Model):
  54. REGULAR = 'R'
  55. GOLD = 'G'
  56. PLATINUM = 'P'
  57. ACCOUNT_TYPE_CHOICES = (
  58. (REGULAR, 'Regular'),
  59. (GOLD, 'Gold'),
  60. (PLATINUM, 'Platinum'),
  61. )
  62. name = models.CharField(max_length=50)
  63. registered_on = models.DateField()
  64. account_type = models.CharField(
  65. max_length=1,
  66. choices=ACCOUNT_TYPE_CHOICES,
  67. default=REGULAR,
  68. )
  69. def __str__(self):
  70. return self.name