1

I'm facing the issue of wrong query result due to timezone issue. I've read several answers, but most of them suggest USE_TZ = False. But we can't do that because of several dependencies on time zone.

blog = Post.objects.filter(date_posted__year=2019, date_posted__month=11)
blog[0]

Post: asfd random new india safasfd adf hey

blog[0].date_posted

datetime.datetime(2019, 11, 26, 20, 33, 58, tzinfo=)

blog[0].date_posted.day

26

When I query on day 26 it throws error:

Post.objects.get(date_posted__year=2019, date_posted__month=11, date_posted__day=26, slug=blog[0].slug)

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/insol/webD/trydjango/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/insol/webD/trydjango/lib/python3.7/site-packages/django/db/models/query.py", line 408, in get
    self.model._meta.object_name
Blog.models.Post.DoesNotExist: Post matching query does not exist.

But it works on day 27.

Post.objects.get(date_posted__year=2019, date_posted__month=11, date_posted__day=27, slug=blog[0].slug)

Output:

<Post: asfd random new india safasfd adf hey>


I tried :
Post.objects.get(date_posted=datetime.date(2019, 11, 27))

throws:

/home/insol/webD/trydjango/lib/python3.7/site-packages/django/db/models/fields/__init__.py:1365: RuntimeWarning: DateTimeField Post.date_posted received a naive datetime (2019-11-27 00:00:00) while time zone support is active.
  RuntimeWarning)

Using this :

Post.objects.get(date_posted=datetime(2019, 11, 26, tzinfo=pytz.timezone('Asia/Kolkata')))

throws :

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/insol/webD/trydjango/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/insol/webD/trydjango/lib/python3.7/site-packages/django/db/models/query.py", line 408, in get
    self.model._meta.object_name
Blog.models.Post.DoesNotExist: Post matching query does not exist.

Is there a way through which I can solve this issue?

Krishna
  • 6,107
  • 2
  • 40
  • 43

0 Answers0