models.py 2.7 KB

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