【问题标题】:check date_join of user with specific datetime检查具有特定日期时间的用户的 date_join
【发布时间】:2019-04-09 08:53:57
【问题描述】:

我是 python 和 django 的新手。我想用特定的日期时间检查 user.date_join 但我不知道什么是正确的语法。

更多信息:我在 view.py 中有一个 SignIn 函数,我想检查 if user.date_join < yyyy/mm/dd 我正在做某事。

view.py:

from datetime import datetime
from django.contrib.auth.models import User

if request.method == "POST":
    if request.user.is_authenticated:
        if user.date_joined < (yyyy/mm/dd):  # <==== here i have problem
                       #do smt
        else:
           #do smt
    else:
      #blah blah
else:
   #blah blah

【问题讨论】:

    标签: python django datetime if-statement


    【解决方案1】:

    在 Python 中比较日期或日期对象非常简单。 基本的比较运算符 (==, !=, , >, =, 为 datetime 对象重载,因此比较日期非常直观和快速。

    试试这个

    if user.date_joined.date() < datetime.datetime('%Y/%d/%m'):
       #
    

    【讨论】:

    • tnx 进行回复。当我使用此条件时出现错误:TypeError: an integer is required (got type str) 然后我将其更改为if user.date_joined.date() &lt; datetime.datetime(2019,10,10) 并出现此错误TypeError: can't compare datetime.datetime to datetime.date
    • 我对其进行了一些更改,现在可以使用了。我导入 date 而不是 timedate 并使用此条件:if user.date_joined.date() &lt; date(2019,10,10)。现在开始工作了。tnxxxxxxxxxxx
    【解决方案2】:

    试试这个。

    假设 user.date_joined 已经是一个 Datetime 对象 您可以在 DateTime 对象中进行比较。在 Datetime 对象中转换您的 (yyyy/mm/dd) 格式并进行比较

    import datetime
    
    // Let's say you need to check if user is joined 8 days back or more
    
    if user.date_joined < datetime.datetime.now()- datetime.timedelta(days=7):
        // your logic
    
    in your case:
    
    if user.date_joined < datetime.datetime('%Y/%d/%m')
        // your logic
    
    
    

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2012-05-27
      • 1970-01-01
      • 2021-09-12
      相关资源
      最近更新 更多