将 DateField 与 timezone.now().date() 进行比较

comparing DateField with timezone.now().date()

我正在尝试将 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,代码在调用函数后执行。

您可以通过以下方式过滤:

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

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