Django现在查询过滤器联系人()

时间:2013-05-30 13:06:20

标签: django

我的问题是:

使用以下查询,如何获取到期的联系人()?即运行视图时尚未发送的所有联系人

Contact.objects.filter(send_email_on=<WHERE TIME NOW???? , status='not sent')

注意我不希望将来的联系人突然发送到现在()

2 个答案:

答案 0 :(得分:2)

好吧,你可以尝试:

from datetime import datetime
# greater than or equal now(), change the __lte for whatever you need
Contact.objects.filter(send_email_on__lte=datetime.now(), status='not sent')

您可以查看the docs,这对字段查找字符串非常有帮助。

提示:

  1. __ lt 低于
  2. __ lte 低于或等于
  3. __ gt 大于
  4. __ gte 大于或等于

答案 1 :(得分:1)

import datetime
from django.utils.timezone import utc

now = datetime.datetime.utcnow().replace(tzinfo=utc)    
Contact.objects.filter(send_email_on__lt=now , status='not sent')

前提是send_email_on是DateTimeField。 对于lt(小于),请参阅here

虽然我认为您需要使用celeryperiodic tasks