Reputation: 748
I wish to perform an operation in the django model where i extract the last 10 minutes of entries and do some data processing on it and return a single value.
I have tried the following code bellow but have not luck. Any help on this would be awesome.
class Data(models.Model):
time_measured = models.DateTimeField(help_text='Time the data was measured.')
int_val = models.DecimalField(max_digits=10, decimal_places=2,blank=True)
def trend(self):
range_start = self.time_measured.minute - timedelta(minute=10)
data = Data.objects.filter(time_measured__minute__range=(range_start, self.time_measured.minute))
return float(data_operation(data.int_val))
Upvotes: 0
Views: 648
Reputation: 15211
def trend(self):
range_start = datetime.datetime.now() - timedelta(minutes=10)
data = Data.objects.filter(time_measured__gte=range_start)
Upvotes: 2
Reputation: 14190
I'd try something like:
def trend(self):
range_start = self.time_measured.minute - timedelta(minute=10)
data = Data.objects.filter(time_measured__minute__gt=range_start)
return float(data_operation(data))
Upvotes: 1