我想从年龄超过一天的模特中删除视频。
models.py
from __future__ import unicode_literals
import urllib
from django.core.files import File
from django.db import models
from PIL import Image
from datetime import datetime
from django.utils import timezone
import os
class video(models.Model):
video_title = models.CharField(max_length=250)
video_link = models.CharField(max_length=250)
video_thumbnail = models.ImageField(upload_to = '',blank = True)
image_url = models.CharField(max_length=250,blank = True)
upload_date = models.DateTimeField(blank=True)
def cache(self):
if self.image_url and not self.video_thumbnail:
result = urllib.urlretrieve(self.image_url)
self.video_thumbnail.save(
os.path.basename(self.image_url),
File(open(result[0]))
)
self.save()
def __str__(self):
return self.video_title + "," + self.video_link + "," + str(self.upload_date)
在外壳程序中,我进行查询以删除年龄超过一天的视频,如下所示:
video.objects.filter((datetime.datetime.now() - (upload_date)).total_hours > 24)
但我收到以下错误:
In [6]: video.objects.filter((datetime.datetime.now() - (upload_date)).total_hours > 24)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-6-0c1ffc162513> in <module>()
----> 1 video.objects.filter((datetime.datetime.now() - (upload_date)).total_hours > 24)
NameError: name 'upload_date' is not defined
为什么我得到错误?
此查询是向后的。您不能将其datetime.datetime.now()
作为第一个参数传递;这是要比较的字段名称。您需要反向查询,以便要求所有其upload_date在现在之前减去24小时的视频:
target_time = datetime.datetime.now() - datetime.timedelta(hours=24)
video.objects.filter(upload_date__lte=target_time)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句