【问题标题】:comparing DateField with timezone.now().date()比较 DateField 与 timezone.now().date()
【发布时间】:2020-10-04 18:01:57
【问题描述】:

我正在尝试将 DateFIeld 与 timezone.now().date() 进行比较,但它没有给出所需的输出:

models.py:

class Holiday_List(models.Model):
name=models.CharField(max_length=30)
holi_day=models.DateField(default=timezone.now())
def __str__(self):
    return '{}---{}'.format(self.name, self.holi_day)

admin.py:

def refresh():
flag=0
din=Holiday_List.objects.all()
for aaj in din:
    if aaj.holi_day==timezone.now().date():
        flag=1
        break;
if(flag==0):
    # some code to be executed

我在 Holiday_List 中有今天日期的对象,但标志值仍未设置为 1,并且代码在调用函数后被执行。

【问题讨论】:

    标签: django django-models timezone datefield


    【解决方案1】:

    您可以使用以下方式过滤:

    def refresh():
        flag = Holiday_List.objects.filter(
            holi_day=timezone.now().date()
        ).exists()
        if not flag:
            # …

    请注意,flagTrue,以防 存在 Holiday_List 对象与 holi_day 今天一样,因此 False 否则。如果今天不是假期,if not flag 将因此被触发。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2018-04-06
      • 1970-01-01
      • 2012-11-30
      相关资源
      最近更新 更多