/ / Django converte todas as datas em um conjunto de registros para fuso horário ciente - python, django, django-timezone

Django converte todas as datas em um conjunto de registros para fuso horário ciente - python, django, django-timezone

Eu tenho um modelo de django que usa o mysql como um banco de dados e estou usando o suporte de fuso horário. Eu tenho um campo no meu modelo que tem uma data.

Como o mysql não pode armazenar informações de fuso horário dentro docampo de data, eu armazeno o deslocamento de fuso horário em um outro campo. Quando eu consultar o banco de dados, quero converter todas as datas para fuso horário ciente, usando o deslocamento que é armazenado no banco de dados.

Você pode supor que meu modelo se parece com isso:

class Item(models.Model):
pubDate = models.DateTimeField(verbose_name="publish date")
pubDate_tz = models.IntegerField()

e minha consulta atualmente é:

items = Item.objects.all().filter(channel__category = category, pubDate__range=[today_date, tomorrow_date]).order_by("-pubDate")

Mas no meu modelo eu quero o uso de item.pubDate para converter automaticamente para o meu fuso horário local.

Obrigado.

Respostas:

0 para resposta № 1

tente usar timezone.make_aware na sua consulta?

info nos documentos aqui https://docs.djangoproject.com/en/dev/ref/utils/#django.utils.timezone.make_aware https://docs.djangoproject.com/en/dev/topics/i18n/timezones/

um exemplo básico para a conversão timezone_aware:

today = timezone.now()

today_aware = timezone.make_aware(time_ago, timezone.get_default_timezone())

Então youd substituir timezone.now com sua consulta item.pudbate

se o fuso horário é sempre o mesmo, você pode definiro fuso horário usando o segundo argumento (timezone.get_default_timezone), se as alterações de fuso horário você deve ser capaz de defini-lo como o valor do banco de dados