簡體   English   中英

如何使用 Django 比較 3 個日期?

[英]How can I compare 3 dates using Django?

我想比較 3 個日期以了解講座是否開始。 為此,我創建了 3 個屬性,即 Lecture_start_date、lecture_finish_date 和當前日期。 但是當我比較它們時,我得到一個錯誤,比如strptime() 參數 1 必須是 str,而不是 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.l_date ,如果這是您數據庫中的一列,您應該從特定記錄中獲取值,而不是作為 class 屬性獲取。

如果您想從 class 中獲取 l_date,我建議您將 class 方法添加到 Lecture 中,以便能夠獲得您想要比較的值。

您可以通過添加到 model 中來實現此目的:

@classmethod
def get_l_date(cls):
    # Do the calculations you need to do
    return calculated_date

datetime.strptime - 需要一個字符串作為調用的第一個參數,這不是你現在傳遞的,如果你使用我之前建議的方法,你甚至不需要這個調用來轉換為日期時間,並且能夠做你正在尋找的比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM