【发布时间】:2020-09-05 16:55:30
【问题描述】:
我想比较 3 个日期以了解讲座是否开始。为此,我创建了 3 个属性,即 Lecture_start_date、lecture_finish_date 和当前日期。但是当我比较它们时,我得到一个错误,例如 strptime() argument 1 must be str, not DeferredAttribute 但我的 Lecture.l_date 也是字符串。
这是我的作品
def about(request,pk_test):
classes = Classroom.objects.get(classroom_name=pk_test)
department = Department.objects.all()
ads= Ads.objects.all()
student=Student.objects.all()
lectures = Lecture.objects.all()
mydate = datetime.today()
lecture_start_date = datetime.strptime(Lecture.l_date, '%Y-%m-%`enter code here`d %H:%M:%S')
lecture_finish_date = datetime.strptime(Lecture.l_date_end, '%Y-%m-%d %H:%M:%S')
if mydate > lecture_start_date and mydate < lecture_finish_date :
print("The lecture has been started.")
总之,我想根据我的当地时间找到讲座是否开始。为了找到我的当地时间,我使用了 mydate = datetime.today() 并且我有来自我的数据库的讲座开始时间和讲座和时间。我该如何比较那些?
【问题讨论】:
-
Lecture.1_date是什么? -
对不起,我没有提到。 Lecture.l_date 是来自数据库的讲座开始日期。这是一个 DateTimeField。
-
@Codeisacode 如果讲座没有开始就没有结束,这不是真的吗?因为
lecture_finish_date的时间大于lecture_start_date。关键是如果您想检查讲座是否开始,您需要将mydate与lecture_start_date进行比较。对于错误,这是因为您返回的对象可能不是字符串类型。我希望这会有所帮助。Lecture.l_date和Lecture.l_date_end不是字符串。
标签: python django sqlite django-models django-views