Django 'time__contains' не работает в конкретном случае
Я пытаюсь сравнить время, вставленное в форму, со временем, сохраненным в БД для удаления этой записи. Не понимаю, почему это не работает, если в БД хранится 8:15:00
, а пользователь вставил 08:15
. Поле в БД TimeField
, а для сравнения я использую .filter(time__contains=t)
, где t
- это строка, вставленная из формы. Разница только в нуле перед 8. Когда в БД это хранится как 08:15:00
, все работает.
class WateringSchedule(models.Model):
time = models.TimeField()
t = '08:15'
print(WateringSchedule.objects.filter(time__contains=t).count())
Спасибо.
Вам следует попробовать icontains
вместо contains
.
Я видел только contains
, используемые с CharField
. Здесь следует использовать time
вместо:
print(WateringSchedule.objects.filter(time__time=t).count())
Здесь я предполагаю, что Django разберет входную строку в объект datetime.time
. Вам может понадобиться использовать strptime()
, чтобы сделать это вручную.