Django: Как взять данные по Foreighkey за некоторую дату?
Models.py
class Electricitymeter(models.Model):
name = models.CharField(max_length=100)
serialnumber = models.CharField(unique=True, max_length=30, primary_key=True, null=False, blank=False,)
ratio_transform = models.PositiveSmallIntegerField(null=False, blank=False, default=1)
class Lessor(models.Model):
name = models.CharField(unique=True, max_length=100)
class Rentaroom(models.Model):
room = models.OneToOneField(Room, on_delete=models.CASCADE)
renter = models.ForeignKey(Renter, on_delete=models.CASCADE)
electricitymeter = models.OneToOneField(Electricitymeter, on_delete=models.CASCADE)
tarifofelectricity = models.FloatField(blank=False, null=False, default=11.8)
class Electricitydate(models.Model):
serialnumber = models.ForeignKey(Electricitymeter, blank=True, null=True, on_delete=models.CASCADE)
datedata = models.DateField(null=False, blank=False)
consumption = models.PositiveIntegerField(blank=False)
Views.py
def outputmetersdata(request):
form = MyForm()
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
form = form.cleaned_data
startdataperiod = form['startdataperiod']
enddataperiod = form['enddataperiod']
pk = form['lessor']
obj = Rentaroom.objects.all().filter(lessor_id=pk.id)
startdate = startdataperiod - timedelta(days=3)
enddate = startdataperiod + timedelta(days=3)
startconsumption = Electricitydate.objects.filter(datedata__range=[startdate, enddate])
context = {
'obj': obj,
'startdataperiod': startdataperiod,
'enddataperiod': enddataperiod,
'pk': pk,
}
return render(request, 'roomsmeters/outputmetersdata.htm', context)
else:
form = MyForm()
return render(request, 'roomsmeters/outputmetersdata.htm', {'form': form})
Шаблон:
{% for obj in obj %}
<h1> Period {{ startdataperiod }} - {{ enddataperiod }} </h1>
<tr>
<td>{{ obj.spotelectr }}</td>
<td>{{ obj.renter }}</td>
<td>{{ obj.room }}</td>
<td>{{ obj.electricitymeter }}</td>
<td>{{ obj.electricitymeter.ratio_transform }}</td>
<td>{{ obj.electricitymeter.serialnumber }}</td>
<td>{{ pk }}</td>
</tr>
Как взять потребление для некоторых датированных данных? И как взять действительное потребление для некоторой даты, если дата находится между двумя датами?
В каком файле я могу сделать расчеты: (потребление_за_вторую_дату - потребление_за_первую_дату) * тариф на электроэнергию = ?