在Python中比较datetime字段,类型错误:无法比较unicode和date.datetime字段

0 投票
1 回答
939 浏览
提问于 2025-04-17 14:17

我在Django里创建了一个日期时间字段叫'time',想根据这个字段进行一些比较。但是它给我报错,说不能把unicode(字符串)和日期时间字段进行比较。

我现在做的事情是这样的:

if form.is_valid():
   if formdata['time']==datetime.datetime.min:
       formdata['time'] = datetime.date.now
   if formadata['time'] < last_entry_time:
       error_message

我发现第一个条件即使它们相等(默认设置为最小值),也返回false。而在第二个if条件里,它又报错了。

我查阅了Python关于日期时间字段的文档,上面提到对于'=='和'!='的比较不会引发类型错误。所以基本上在这两个条件语句里存在类型不匹配的问题。

1 个回答

1

form.cleaned_data 中使用属性进行比较。cleaned_data 中的属性会是合适的数据类型。

比如:

if form.is_valid():
   if form.cleaned_data['time']==datetime.datetime.min:
   ....

撰写回答