summaryrefslogtreecommitdiff
path: root/tests/extra_regress/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/extra_regress/models.py')
-rw-r--r--tests/extra_regress/models.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/extra_regress/models.py b/tests/extra_regress/models.py
new file mode 100644
index 0000000000..11996438b4
--- /dev/null
+++ b/tests/extra_regress/models.py
@@ -0,0 +1,45 @@
+from __future__ import unicode_literals
+
+import copy
+import datetime
+
+from django.contrib.auth.models import User
+from django.db import models
+from django.utils.encoding import python_2_unicode_compatible
+
+
+@python_2_unicode_compatible
+class RevisionableModel(models.Model):
+ base = models.ForeignKey('self', null=True)
+ title = models.CharField(blank=True, max_length=255)
+ when = models.DateTimeField(default=datetime.datetime.now)
+
+ def __str__(self):
+ return "%s (%s, %s)" % (self.title, self.id, self.base.id)
+
+ def save(self, *args, **kwargs):
+ super(RevisionableModel, self).save(*args, **kwargs)
+ if not self.base:
+ self.base = self
+ kwargs.pop('force_insert', None)
+ kwargs.pop('force_update', None)
+ super(RevisionableModel, self).save(*args, **kwargs)
+
+ def new_revision(self):
+ new_revision = copy.copy(self)
+ new_revision.pk = None
+ return new_revision
+
+class Order(models.Model):
+ created_by = models.ForeignKey(User)
+ text = models.TextField()
+
+@python_2_unicode_compatible
+class TestObject(models.Model):
+ first = models.CharField(max_length=20)
+ second = models.CharField(max_length=20)
+ third = models.CharField(max_length=20)
+
+ def __str__(self):
+ return 'TestObject: %s,%s,%s' % (self.first,self.second,self.third)
+