我想用pendulum作为Django的基本datetime库。因此,DateTimeField
应该使用pendulum
对象,而不是datetime
对象。你知道吗
我遵循了钟摆的文档页面上的一个示例,并创建了一个特殊字段:
import pendulum
from django.db.models import DateTimeField as BaseDateTimeField
class DateTimeField(BaseDateTimeField):
def value_to_string(self, obj):
val = self.value_from_object(obj)
if isinstance(value, pendulum.DateTime):
return value.format('YYYY-MM-DD HH:mm:ss')
return '' if val is None else val.isoformat()
…在我的models.py
中使用了:
class Task(models.Model):
title = models.CharField(max_length=100)
description = models.TextField()
done = models.BooleanField()
due_date = BaseDateTimeField()
def is_today(self):
return self.due_date.in_timezone('utc').date() == pendulum.today('utc').date()
…但是我得到一个错误:
'datetime.datetime' object has no attribute 'in_timezone'
…这显然意味着Django仍然将due_date
视为datetime
对象,而不是pendulum
对象。你知道吗
有没有可能切换到使用钟摆作为Django的基准日期时间库?你知道吗
附言
我认为docs代码片段有问题,value
看起来出乎意料,但我不认为这是问题的原因。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐