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?