Python 如何使用Django比较3个日期?

Python 如何使用Django比较3个日期?,python,django,sqlite,django-models,django-views,Python,Django,Sqlite,Django Models,Django Views,我想比较3个日期来判断讲座是否开始。为此,我创建了3个属性,分别是讲座开始日期、讲座结束日期和当前日期。但是当我比较它们时,我得到了一个错误,比如strptime()参数1必须是str,而不是DeferredAttribute,但是我的teaching.l_日期也是字符串 这是我的工作 def about(request,pk_test): classes = Classroom.objects.get(classroom_name=pk_test) department = D

我想比较3个日期来判断讲座是否开始。为此,我创建了3个属性,分别是讲座开始日期、讲座结束日期和当前日期。但是当我比较它们时,我得到了一个错误,比如strptime()参数1必须是str,而不是DeferredAttribute,但是我的teaching.l_日期也是字符串

这是我的工作

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.")
def关于(请求、pk_测试):
类=教室.objects.get(教室名称=pk\U测试)
department=department.objects.all()
ads=ads.objects.all()
student=student.objects.all()
讲座=讲座.objects.all()
mydate=datetime.today()
讲座开始日期=datetime.strtime(讲座开始日期,%Y-%m-%`在此处输入代码'd%H:%m:%S')
讲座结束日期=datetime.strTime(讲座结束日期,%Y-%m-%d%H:%m:%S')
如果mydate>讲座开始日期和mydate<讲座结束日期:
打印(“讲座已经开始了。”)

总之,我想根据我当地的时间来确定讲座是否开始。为了找到我的本地时间,我使用mydate=datetime.today()并从数据库中获取了讲座开始时间和讲座时间。我如何比较这些

您需要注意调用
讲座.l_date
,如果这是数据库中的一列,您应该从特定记录获取值,而不是作为类属性获取

如果你想从课堂上获取l_日期,我建议你在课堂上添加一个课堂方法,以便能够获得你想要比较的值

您可以通过在模型中添加以下内容来实现此目的:

@classmethod
def获取日期(cls):
#做你需要做的计算
返回日期

datetime.strtime
-需要一个字符串作为调用的第一个参数,而这不是您现在要传递的,如果您使用我之前建议的方法,您甚至不需要将此调用转换为datetime,并且能够进行您正在寻找的比较。

什么是
讲座.1_date
,我没提那件事。l_日期是来自数据库的讲座开始日期。这是一个DateTimeField。@Codeisacode如果一个讲座没有开始就没有结束,这不是真的吗?由于
讲座结束日期
的时间大于
讲座开始日期
。关键是,如果要检查讲座是否开始,需要将
mydate
teaching\u start\u date
进行比较。对于错误,这是因为您返回的对象可能不是字符串类型。我希望这有帮助。
讲座。l_date
讲座。l_date\u end
不是字符串。谢谢你的帮助。我明白了