Задать вопрос

Как в django выбрать предпоследнее значение ForeignKey?

Есть две модели первое устройство вторая счетчик, последнее значение счетчика получается вытащить из базы, подскажите как вытащить предпоследнее значение что бы можно было посчитать какой расход?
class Device(models.Model):
    name = models.CharField("Название", blank=True, max_length=150, default='')
    def get_sum(self):
        device_sum = Device.objects.get(name=self.name)
        sum_number = device_sum.sensor.aggregate(total_price=Max('number',))['total_price']
        return sum_number

class Sensor(models.Model):
    number = models.IntegerField(verbose_name='Счетчик', default=0)
    month = models.DateTimeField('Дата снятия счетчика', auto_now_add=True)
    device = models.ForeignKey(Device, on_delete=models.PROTECT, related_name='sensor')
  • Вопрос задан
  • 62 просмотра
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Решения вопроса 1
@twistfire92
Python backend developer
Навскидку
Sensor.objects.order_by("-month")[1]

А можно попробовать сразу и последний и предпоследний получить одним запросом. Сам не пробовал, но начать эксперименты можете вот с такого кода:
last, pre_last = Sensor.objects.order_by("-month")[:2]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы