1. from django.db import models
    
  2. 
    
  3. try:
    
  4.     from PIL import Image
    
  5. except ImportError:
    
  6.     Image = None
    
  7. 
    
  8. 
    
  9. class CaseTestModel(models.Model):
    
  10.     integer = models.IntegerField()
    
  11.     integer2 = models.IntegerField(null=True)
    
  12.     string = models.CharField(max_length=100, default="")
    
  13. 
    
  14.     big_integer = models.BigIntegerField(null=True)
    
  15.     binary = models.BinaryField(default=b"")
    
  16.     boolean = models.BooleanField(default=False)
    
  17.     date = models.DateField(null=True, db_column="date_field")
    
  18.     date_time = models.DateTimeField(null=True)
    
  19.     decimal = models.DecimalField(
    
  20.         max_digits=2, decimal_places=1, null=True, db_column="decimal_field"
    
  21.     )
    
  22.     duration = models.DurationField(null=True)
    
  23.     email = models.EmailField(default="")
    
  24.     file = models.FileField(null=True, db_column="file_field")
    
  25.     file_path = models.FilePathField(null=True)
    
  26.     float = models.FloatField(null=True, db_column="float_field")
    
  27.     if Image:
    
  28.         image = models.ImageField(null=True)
    
  29.     generic_ip_address = models.GenericIPAddressField(null=True)
    
  30.     null_boolean = models.BooleanField(null=True)
    
  31.     positive_integer = models.PositiveIntegerField(null=True)
    
  32.     positive_small_integer = models.PositiveSmallIntegerField(null=True)
    
  33.     positive_big_integer = models.PositiveSmallIntegerField(null=True)
    
  34.     slug = models.SlugField(default="")
    
  35.     small_integer = models.SmallIntegerField(null=True)
    
  36.     text = models.TextField(default="")
    
  37.     time = models.TimeField(null=True, db_column="time_field")
    
  38.     url = models.URLField(default="")
    
  39.     uuid = models.UUIDField(null=True)
    
  40.     fk = models.ForeignKey("self", models.CASCADE, null=True)
    
  41. 
    
  42. 
    
  43. class O2OCaseTestModel(models.Model):
    
  44.     o2o = models.OneToOneField(CaseTestModel, models.CASCADE, related_name="o2o_rel")
    
  45.     integer = models.IntegerField()
    
  46. 
    
  47. 
    
  48. class FKCaseTestModel(models.Model):
    
  49.     fk = models.ForeignKey(CaseTestModel, models.CASCADE, related_name="fk_rel")
    
  50.     integer = models.IntegerField()
    
  51. 
    
  52. 
    
  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.     )