Django 'time__contains'在特定情况下不起作用



我试图比较时间粘贴到形式与时间保存在DB中删除此记录。我不明白为什么在DB中存储8:15:00和用户粘贴08:15时不工作。DB中的字段是TimeField,为了比较,我使用.filter(time__contains=t),其中t是从形式粘贴的字符串。唯一的区别是0在8之前。当它在DB中像08:15:00一样存储时,一切都在工作。

class WateringSchedule(models.Model):
time = models.TimeField()
t = '08:15'
print(WateringSchedule.objects.filter(time__contains=t).count())

谢谢。

我只看到containsCharField一起使用。没有理由在这里使用它。只需使用字段名:

print(WateringSchedule.objects.filter(time=t).count())

这里我假设Django将把输入字符串解析成一个datetime.time对象。您可能需要使用strptime()手动执行此操作。

也可以使用hourminute

您应该尝试icontains而不是contains

最新更新