【发布时间】:2020-06-19 01:30:41
【问题描述】:
我正在使用 Django 2.2
在我的应用程序中,设置文件中的 USE_TZ=True 启用了时区支持。
我有带有 DateTime 字段 created 的模型。
我需要根据日期过滤数据。日期可以由用户提供,否则默认为now()。
这就是我正在做的事情
from datetime import datetime, timedelta
from django.utils import timezone
class Generator:
def __init__(self, start_date=None, end_date=None):
if end_date:
self.end_date = datetime.strptime(end_date, '%Y-%m-%d').date()
else:
self.end_date = timezone.now().date()
if start_date:
self.start_date = datetime.strptime(start_date, '%Y-%m-%d').date()
else:
self.start_date = self.end_date - timedelta(days=7)
def get_query(self, d):
query = MyModel.objects.filter(
d__in=d,
created__gte=start_date,
created__lte=end_date
)
return query
但这会报错
RuntimeWarning: DateTimeField MyModel.created received a naive datetime (2020-02-28 00:00:00) while time zone support is active.
我怎样才能解决这个问题?
【问题讨论】:
标签: django django-i18n django-timezone