我们从Python开源项目中,提取了以下13个代码示例,用于说明如何使用django.db.models.DurationField()。
def __init__(self, expression, **extra): output_field = extra.pop('output_field', DurationField()) super(SecondsToInterval, self).__init__(expression, output_field=output_field, **extra)
def with_bounds(self): return self.annotate( start=Min('statuses__creation_date'), end=Max('statuses__creation_date')).annotate( statuses_delta=ExpressionWrapper( F('end') - F('start'), output_field=models.DurationField() ))
def test_should_auto_convert_duration(): assert_conversion(models.DurationField, graphene.Float)
def set_score(self): max_estimate = Task.objects.all().aggregate(maximum=Max(F('estimate') - F('created'), output_field=DurationField())) today = timezone.now() points = (today - self.created) / (self.estimate - self.created) + ( (self.estimate - self.created) / max_estimate['maximum']) if not hasattr(self, 'score'): self.score = Score.objects.create(task=self, points=points) else: self.score.points = points
def test_get_concrete_class_for_model_field(self): """ The get_concrete_class_for_model_field method should return the correct OmniField subclass """ self.assertEqual(OmniField.get_concrete_class_for_model_field(models.CharField()), OmniCharField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.NullBooleanField()), OmniBooleanField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.BooleanField()), OmniBooleanField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.DateTimeField()), OmniDateTimeField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.DecimalField()), OmniDecimalField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.EmailField()), OmniEmailField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.FloatField()), OmniFloatField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.IntegerField()), OmniIntegerField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.BigIntegerField()), OmniIntegerField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.PositiveIntegerField()), OmniIntegerField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.SmallIntegerField()), OmniIntegerField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.TimeField()), OmniTimeField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.URLField()), OmniUrlField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.SlugField()), OmniSlugField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.FileField()), OmniFileField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.ImageField()), OmniImageField) self.assertEqual(OmniField.get_concrete_class_for_model_field(models.DurationField()), OmniDurationField) self.assertEqual( OmniField.get_concrete_class_for_model_field(models.GenericIPAddressField()), OmniGenericIPAddressField ) self.assertEqual( OmniField.get_concrete_class_for_model_field(models.CommaSeparatedIntegerField()), OmniCharField ) self.assertEqual( OmniField.get_concrete_class_for_model_field(models.PositiveSmallIntegerField()), OmniIntegerField ) self.assertEqual( OmniField.get_concrete_class_for_model_field(models.ForeignKey(DummyModel2)), OmniForeignKeyField ) self.assertEqual( OmniField.get_concrete_class_for_model_field(models.ManyToManyField(DummyModel2)), OmniManyToManyField )
def test_initial(self): """ The model should have an initial field """ field = OmniDurationField._meta.get_field('initial') self.assertIsInstance(field, models.DurationField) self.assertTrue(field.blank) self.assertTrue(field.null)
def test_field_class(self): """ The model should define the correct field class """ self.assertEqual(OmniDurationField.FIELD_CLASS, 'django.forms.DurationField')
def get_concrete_class_for_model_field(cls, model_field): """ Method for getting a concrete model class to represent the type of form field required :param model_field: Model Field instance :return: OmniField subclass """ field_mapping = { models.CharField: OmniCharField, models.TextField: OmniCharField, models.BooleanField: OmniBooleanField, models.NullBooleanField: OmniBooleanField, models.DateField: OmniDateField, models.DateTimeField: OmniDateTimeField, models.DecimalField: OmniDecimalField, models.EmailField: OmniEmailField, models.FloatField: OmniFloatField, models.IntegerField: OmniIntegerField, models.BigIntegerField: OmniIntegerField, models.PositiveIntegerField: OmniIntegerField, models.PositiveSmallIntegerField: OmniIntegerField, models.SmallIntegerField: OmniIntegerField, models.CommaSeparatedIntegerField: OmniCharField, models.TimeField: OmniTimeField, models.URLField: OmniUrlField, models.ForeignKey: OmniForeignKeyField, models.ManyToManyField: OmniManyToManyField, models.SlugField: OmniSlugField, models.FileField: OmniFileField, models.ImageField: OmniImageField, models.DurationField: OmniDurationField, models.GenericIPAddressField: OmniGenericIPAddressField } field_mapping.update(cls.get_custom_field_mapping()) return field_mapping.get(model_field.__class__)