【发布时间】:2020-10-13 07:35:22
【问题描述】:
在这里我正在编写一个中间件来删除超过 3 个月的对象。 date_before_2_month 和 datetime_before_2_months 工作正常。我还没有测试过滤但是在我的控制台中它给了我一个运行时警告说activity_time收到了一个天真的日期时间。
这个警告是一个问题(需要解决)还是我们可以忽略它?
我的过滤器参数也适用于从模型中查询 2 个月大的对象吗?
模型中的activity_time 是DateTimeField(auto_now_add=True)
class UserActivityLogDeleteMiddleware(object): # middleware for deleting user activity logs which are older than 2 months
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
date_before_2_month = datetime.date.today() - relativedelta(months=2)
# converting into datetime
datetime_before_2_month = datetime.datetime.combine(date_before_2_month, datetime.time(9, 00, 00))
# deleting logs older than 2 months
UserActivityLog.objects.filter(activity_time__lt=datetime_before_2_month).delete()
response = self.get_response(request)
return response
【问题讨论】:
-
你的删除查询对我来说看起来不错,关于天真的日期时间检查这个答案:stackoverflow.com/questions/18622007/…
标签: django django-views python-datetime