我有以下代码,并收到上述错误。由于我是python的新手,因此无法理解这里的语法以及如何解决错误:
if not start or date < start: start = date
Answers:
有一种datetime.date()从日期时间转换为日期的方法。
要进行相反的转换,可以使用此功能 datetime.datetime(d.year, d.month, d.day)
datetime.datetime(d.year, d.month, d.day)
假设开始是一个日期时间,请像这样使用它:
if not start or date < start.date(): start = date
我认为没有必要在python中将日期转换为日期时间,因为您可以做相反的操作并进行比较。
否则,您还有其他方法可以通过使用要转换的日期和00:00的时间来创建新的日期时间。
DateFieldto进行比较时遇到了相同的错误datetime.now(),我只是.date()在结尾处添加了这样的内容,就这样datetime.now().date()解决了这个问题:这是一个非常不错的方法,并且没有过于复杂的解决方案
我猜你的变量开始和日期是不同的类型。一个是日期时间,一个是日期。您可能必须显示更多代码才能获得体面的帮助。
但是请看一下:http : //docs.python.org/library/datetime.html#available-types
它告诉您datetime.datetime与datetime.date一样具有日,月和年等属性。
当您尝试比较日期字段(DateField)和日期时间字段(DateTimeField。
解决方案是检查您在模型中定义字段的位置,并确保类型统一。
我建议您将全部替换DateField为DateTimeField。