我需要每天将该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()
要比较日期,可以在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()```
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。