相关疑难解决方法(0)

django 1.4 - 无法比较offset-naive和offset-aware datetimes

我正在将应用程序从django 1.2迁移到1.4.

我有一个每日任务对象,其中包含应该完成任务的时间:

class DailyTask(models.Model):
    time = models.TimeField()
    last_completed = models.DateTimeField()
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=1000)
    weekends = models.BooleanField()

    def __unicode__(self):
        return '%s' % (self.name)

    class Meta:
        db_table = u'dailytask'
        ordering = ['name']
Run Code Online (Sandbox Code Playgroud)

为了检查今天是否仍需要完成任务,我有以下代码:

def getDueDailyTasks():
    dueDailyTasks=[]
    now = datetime.datetime.now()
    try:
        dailyTasks = DailyTask.objects.all()
    except dailyTask.DoesNotExist:
        return None
    for dailyTask in dailyTasks:
        timeDue = datetime.datetime(now.year,now.month,now.day,dailyTask.time.hour,dailyTask.time.minute,dailyTask.time.second)
        if timeDue<now and timeDue>dailyTask.last_completed:
            if dailyTask.weekends==False and now.weekday()>4:
                pass
            else:
                dueDailyTasks.append({'id':dailyTask.id,
                            'due':timeDue,
                             'name': dailyTask.name,
                             'description':dailyTask.description})
    return dueDailyTasks
Run Code Online (Sandbox Code Playgroud)

这在1.2下工作正常,但在1.4以下我得到错误:

can't compare offset-naive and offset-aware datetimes …
Run Code Online (Sandbox Code Playgroud)

python django timezone

82
推荐指数
1
解决办法
5万
查看次数

Timezone.now()vs datetime.datetime.now()

我什么timezone.now()时候应该使用django ,什么时候应该使用python datetime.datetime.now()

例如,在下面INSERT哪个更有意义?

- Product.objects.create(title='Soap', date_added=datetime.datetime.now())
- Product.objects.create(title='Soap', date_added=timezone.now())
Run Code Online (Sandbox Code Playgroud)

是否有关于何时使用每种方法的经验法则?

python django datetime django-timezone

13
推荐指数
1
解决办法
4156
查看次数

标签 统计

django ×2

python ×2

datetime ×1

django-timezone ×1

timezone ×1