Django Запрос DateTimeField за последний час - PullRequest
1 голос
/ 12 апреля 2020

Я пытаюсь запросить данные из последнего часа из базы данных postgreSQL,

, это модель таблицы в Django:

class data(models.Model):
    fecha = models.TextField(db_column='Fecha', blank=True, null=True)  # Field name made lowercase.
    hora = models.TextField(db_column='Hora', blank=True, null=True)  # Field name made lowercase.
    lat = models.FloatField(blank=True, null=True)
    lng = models.FloatField(blank=True, null=True)
    tipo = models.BigIntegerField(db_column='Tipo', blank=True, null=True)  # Field name made lowercase.
    ka = models.FloatField(db_column='kA', blank=True, null=True)  # Field name made lowercase.
    error = models.FloatField(blank=True, null=True)
    tiempo = models.DateTimeField(db_column='Tiempo',primary_key=True, blank=True, null=False)  # Field name made lowercase.
    geom = models.PointField(blank=True, null=True)

, и это что у меня в файле просмотров:

from datetime import datetime, timedelta
time = datetime.now() - timedelta(hours=1)
def last_hour(request):  
    hour = serialize('geojson',data.objects.filter(tiempo__lt=time))
    return HttpResponse(hour, content_type='json')

Мне повезло с информацией о других постах. Моя Django версия - 3.0.5, а данные часового пояса в postgreSQL - ut c -5

1 Ответ

2 голосов
/ 12 апреля 2020

Если это последний час, то tiempo должно быть больше, чем метка времени часа go. Вы также должны рассчитать это в функции представления, так как в противном случае, если вы позже запросите представление, оно всегда вернет данные позже, чем за час до запуска веб-сервера:

from datetime import datetime, timedelta

def last_hour(request):
    time = datetime.now() - timedelta(hours=1)
    hour = serialize('geojson',data.objects.filter(<b>tiempo__gte=time</b>))
    return HttpResponse(hour, content_type='json')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...