开发者社区> 问答> 正文

Django 中datetime的使用

我需要每天将该voted_today字段重置为0。

from django.db import models
from datetime import datetime, time

from django.conf import settings
from places.models import Place


class Subscription(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.DO_NOTHING)
    place = models.ForeignKey(Place, on_delete=models.DO_NOTHING)
    last_vote_date = models.DateTimeField(default=datetime.now)
    voted_today = models.IntegerField(default=0, editable=True)

    def __str__(self):
        return self.user

我认为是这样:

    def reset_votes_day(user, current_stade):
        subscription = get_object_or_404(Subscription, user=user, place=current_stade.place)
        if (subscription.last_vote_date != today()):
            subscription.voted_today = 0
            subscription.save()

但我不知道该如何解决: subscription.last_vote_date != today()

展开
收起
安忆333 2019-12-05 19:47:19 1795 0
1 条回答
写回答
取消 提交回答
  • 要比较日期,可以在datetime使用date()函数简单地提取日期, 您的代码应如下所示:

    today = datetime.today.date()
    if subscription.last_vote_date.date() != today:
        subscription.voted_today = 0
        subscription.save()
    

    或者以下方法:

    
    from django.utils import timezone
    today = timezone.now().date()```  
    
    2019-12-05 19:50:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载