每当表格记录的时间戳或日期时间与db中的当前日期时间匹配时,我都需要删除表记录。问题是我无法使用日期时间方法在控制台上获取日期时间值,如果我使用它我无法过滤它。
这是我的代码
def query(request):
xx = datetime.datetime.now()
if dulesdb.objects.all():
zzz = dulesdb.objects.datetimes('request_time','second')
yyy = dulesdb.objects.filter(zzz > datetime.datetime.now())
print yyy.delete() # some trick this way
return HttpResponse('deleted')
答案 0 :(得分:0)
如果我正确理解您的代码,您希望删除request_time
大于当前日期时间的记录。
要实现此目的,您可以过滤查询集以仅获取相应的记录:
def query(request):
dulesdb.objects.filter(request_time__gt=datetime.datetime.now()).delete()
return HttpResponse('deleted')
此查询集将返回其request_time
属性大于当前时间的所有记录。然后,您可以直接删除这些记录(使用delete()
方法)。
您可以根据需要替换__gt
后缀(__gte
:大于或等于,__lt
:小于等等。)
您可以在official doc
中找到有关字段查找的更多信息