summaryrefslogtreecommitdiff
path: root/tests/expressions_case/models.py
diff options
context:
space:
mode:
authorMichaƂ Modzelewski <michal.modzelewski@gmail.com>2015-01-02 02:39:31 +0100
committerTim Graham <timograham@gmail.com>2015-01-12 18:15:34 -0500
commit65246de7b1d70d25831ab394c4f4a75813f629fe (patch)
tree618c5f030f9a77d240dc59b132dd1e152baca116 /tests/expressions_case/models.py
parentaa8ee6a5731b37b73635e7605521fb1a54a5c10d (diff)
Fixed #24031 -- Added CASE expressions to the ORM.
Diffstat (limited to 'tests/expressions_case/models.py')
-rw-r--r--tests/expressions_case/models.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/tests/expressions_case/models.py b/tests/expressions_case/models.py
new file mode 100644
index 0000000000..fcee0cdbd3
--- /dev/null
+++ b/tests/expressions_case/models.py
@@ -0,0 +1,80 @@
+from __future__ import unicode_literals
+
+from django.db import models
+from django.utils.encoding import python_2_unicode_compatible
+
+
+@python_2_unicode_compatible
+class CaseTestModel(models.Model):
+ integer = models.IntegerField()
+ integer2 = models.IntegerField(null=True)
+ string = models.CharField(max_length=100, default='')
+
+ big_integer = models.BigIntegerField(null=True)
+ binary = models.BinaryField(default=b'')
+ boolean = models.BooleanField(default=False)
+ comma_separated_integer = models.CommaSeparatedIntegerField(max_length=100, default='')
+ date = models.DateField(null=True, db_column='date_field')
+ date_time = models.DateTimeField(null=True)
+ decimal = models.DecimalField(max_digits=2, decimal_places=1, null=True, db_column='decimal_field')
+ duration = models.DurationField(null=True)
+ email = models.EmailField(default='')
+ file = models.FileField(null=True, db_column='file_field')
+ file_path = models.FilePathField(null=True)
+ float = models.FloatField(null=True, db_column='float_field')
+ image = models.ImageField(null=True)
+ ip_address = models.IPAddressField(null=True)
+ generic_ip_address = models.GenericIPAddressField(null=True)
+ null_boolean = models.NullBooleanField()
+ positive_integer = models.PositiveIntegerField(null=True)
+ positive_small_integer = models.PositiveSmallIntegerField(null=True)
+ slug = models.SlugField(default='')
+ small_integer = models.SmallIntegerField(null=True)
+ text = models.TextField(default='')
+ time = models.TimeField(null=True, db_column='time_field')
+ url = models.URLField(default='')
+ uuid = models.UUIDField(null=True)
+ fk = models.ForeignKey('self', null=True)
+
+ def __str__(self):
+ return "%i, %s" % (self.integer, self.string)
+
+
+@python_2_unicode_compatible
+class O2OCaseTestModel(models.Model):
+ o2o = models.OneToOneField(CaseTestModel, related_name='o2o_rel')
+ integer = models.IntegerField()
+
+ def __str__(self):
+ return "%i, %s" % (self.id, self.o2o)
+
+
+@python_2_unicode_compatible
+class FKCaseTestModel(models.Model):
+ fk = models.ForeignKey(CaseTestModel, related_name='fk_rel')
+ integer = models.IntegerField()
+
+ def __str__(self):
+ return "%i, %s" % (self.id, self.fk)
+
+
+@python_2_unicode_compatible
+class Client(models.Model):
+ REGULAR = 'R'
+ GOLD = 'G'
+ PLATINUM = 'P'
+ ACCOUNT_TYPE_CHOICES = (
+ (REGULAR, 'Regular'),
+ (GOLD, 'Gold'),
+ (PLATINUM, 'Platinum'),
+ )
+ name = models.CharField(max_length=50)
+ registered_on = models.DateField()
+ account_type = models.CharField(
+ max_length=1,
+ choices=ACCOUNT_TYPE_CHOICES,
+ default=REGULAR,
+ )
+
+ def __str__(self):
+ return self.name