mirror of
https://github.com/django/django.git
synced 2024-12-23 09:36:06 +00:00
57554442fe
A field for storing periods of time - modeled in Python by timedelta. It is stored in the native interval data type on PostgreSQL and as a bigint of microseconds on other backends. Also includes significant changes to the internals of time related maths in expressions, including the removal of DateModifierNode. Thanks to Tim and Josh in particular for reviews.
59 lines
1.5 KiB
Python
59 lines
1.5 KiB
Python
"""
|
|
Tests for F() query expression syntax.
|
|
"""
|
|
|
|
from __future__ import unicode_literals
|
|
|
|
from django.db import models
|
|
from django.utils.encoding import python_2_unicode_compatible
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Employee(models.Model):
|
|
firstname = models.CharField(max_length=50)
|
|
lastname = models.CharField(max_length=50)
|
|
|
|
def __str__(self):
|
|
return '%s %s' % (self.firstname, self.lastname)
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Company(models.Model):
|
|
name = models.CharField(max_length=100)
|
|
num_employees = models.PositiveIntegerField()
|
|
num_chairs = models.PositiveIntegerField()
|
|
ceo = models.ForeignKey(
|
|
Employee,
|
|
related_name='company_ceo_set')
|
|
point_of_contact = models.ForeignKey(
|
|
Employee,
|
|
related_name='company_point_of_contact_set',
|
|
null=True)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
|
|
@python_2_unicode_compatible
|
|
class Number(models.Model):
|
|
integer = models.BigIntegerField(db_column='the_integer')
|
|
float = models.FloatField(null=True, db_column='the_float')
|
|
|
|
def __str__(self):
|
|
return '%i, %.3f' % (self.integer, self.float)
|
|
|
|
|
|
class Experiment(models.Model):
|
|
name = models.CharField(max_length=24)
|
|
assigned = models.DateField()
|
|
completed = models.DateField()
|
|
estimated_time = models.DurationField()
|
|
start = models.DateTimeField()
|
|
end = models.DateTimeField()
|
|
|
|
class Meta:
|
|
ordering = ('name',)
|
|
|
|
def duration(self):
|
|
return self.end - self.start
|