Skip to content

Commit

Permalink
[fix/back] AverageLog 데이터 오류 해결 - #27
Browse files Browse the repository at this point in the history
  • Loading branch information
SeungWookHan committed Jan 27, 2021
1 parent b55afed commit 45feca5
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions back/django/log/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,18 @@
from django.db.models import Avg


class AverageLog(models.Model):
class Meta:
db_table = "average"

average_time = models.CharField(max_length=10)
sensor_id = models.CharField(max_length=50)
average_masked = models.IntegerField()
average_unmasked = models.IntegerField()

def __str__(self):
return str(self.sensor_id)

class Log(DateTimeStampedModel):
class Meta:
db_table = "log"
Expand All @@ -19,27 +31,15 @@ def save(self, force_insert=False, force_update=False, *args, **kwargs):
super(Log, self).save(force_insert, force_update, *args, **kwargs)
# you can add this for only existing model object
if self.sensor_id:
print(self.time, self.sensor_id, self.masked, self.unmasked)
# You can check if only 'price' field changed
masked_avg = Log.objects.filter(sensor_id=self.sensor_id, time=self.time).aggregate(Avg('masked'))['masked__avg']
unmasked_avg = Log.objects.filter(sensor_id=self.sensor_id, time=self.time).aggregate(Avg('unmasked'))['unmasked__avg']
masked_avg = round(masked_avg)
unmasked_avg = round(unmasked_avg)

try:
exist = AverageLog.objects.get(average_time=self.time, sensor_id=self.sensor_id)
AverageLog.objects.update(average_masked=masked_avg, average_unmasked=unmasked_avg)
except:
AverageLog.objects.create(average_time=self.time, sensor_id=self.sensor_id, average_masked=masked_avg, average_unmasked=unmasked_avg)


class AverageLog(models.Model):
class Meta:
db_table = "average"

average_time = models.CharField(max_length=10)
sensor_id = models.CharField(max_length=50)
average_masked = models.IntegerField()
average_unmasked = models.IntegerField()

def __str__(self):
return str(self.sensor_id)
exist = AverageLog.objects.filter(average_time=self.time, sensor_id=self.sensor_id)
if exist:
exist.update(average_masked=masked_avg, average_unmasked=unmasked_avg)
else:
AverageLog.objects.create(average_time=self.time, sensor_id=self.sensor_id, average_masked=masked_avg, average_unmasked=unmasked_avg)

0 comments on commit 45feca5

Please sign in to comment.