diff options
| author | MichaĆ Modzelewski <michal.modzelewski@gmail.com> | 2015-01-02 02:39:31 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-01-12 18:15:34 -0500 |
| commit | 65246de7b1d70d25831ab394c4f4a75813f629fe (patch) | |
| tree | 618c5f030f9a77d240dc59b132dd1e152baca116 /tests/expressions_case/models.py | |
| parent | aa8ee6a5731b37b73635e7605521fb1a54a5c10d (diff) | |
Fixed #24031 -- Added CASE expressions to the ORM.
Diffstat (limited to 'tests/expressions_case/models.py')
| -rw-r--r-- | tests/expressions_case/models.py | 80 |
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 |
