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>

Как взять потребление для некоторых датированных данных? И как взять действительное потребление для некоторой даты, если дата находится между двумя датами?

В каком файле я могу сделать расчеты: (потребление_за_вторую_дату - потребление_за_первую_дату) * тариф на электроэнергию = ?

Вернуться на верх