Django DateTimeField和视图中的更改日期
我有这个密码Django DateTimeField和视图中的更改日期,django,Django,我有这个密码 class MyModel(models.Model): date = models.DateTimeField(blank=True, default=datetime.now) 在models.py中。在视图中,我得到了对象: obj = MyModel.objects.get(id=2) 我希望更改下一年的日期。如何做到这一点?如果365天对您来说已经足够近了,那么最简单的解决方案是: import datetime obj = MyModel.objects.
class MyModel(models.Model):
date = models.DateTimeField(blank=True, default=datetime.now)
在models.py中。在视图中,我得到了对象:
obj = MyModel.objects.get(id=2)
我希望更改下一年的日期。如何做到这一点?如果365天对您来说已经足够近了,那么最简单的解决方案是:
import datetime
obj = MyModel.objects.get(id=2)
obj.date = obj.date + datetime.timedelta(days=365)
obj.save()
如果需要更高的精度(例如闰年),请使用mxdatetime软件包中的相对日期时间:
如果365天对您来说已经足够近了,最简单的解决方案是:
import datetime
obj = MyModel.objects.get(id=2)
obj.date = obj.date + datetime.timedelta(days=365)
obj.save()
如果需要更高的精度(例如闰年),请使用mxdatetime软件包中的相对日期时间:
如果您需要准确计算闰年:
import datetime, calendar
obj = MyModel.objects.get(id=2)
next_date = obj.date + datetime.timedelta(days=365)
if calendar.isleap(obj.date.year) and obj.date <= datetime.datetime(obj.date.year, 2, 29) or \
calendar.isleap(next_date.year) and obj.date > datetime.datetime(obj.date.year, 2, 28):
next_date += datetime.timedelta(days=1)
obj.date = next_date
obj.save()
导入日期时间、日历
obj=MyModel.objects.get(id=2)
下一个日期=obj.date+datetime.timedelta(天=365)
如果calendar.isleap(obj.date.year)和obj.date.datetime.datetime(obj.date.year,2,28):
next_date+=datetime.timedelta(天=1)
obj.date=下一个日期
obj.save()
如果您需要准确计算闰年:
import datetime, calendar
obj = MyModel.objects.get(id=2)
next_date = obj.date + datetime.timedelta(days=365)
if calendar.isleap(obj.date.year) and obj.date <= datetime.datetime(obj.date.year, 2, 29) or \
calendar.isleap(next_date.year) and obj.date > datetime.datetime(obj.date.year, 2, 28):
next_date += datetime.timedelta(days=1)
obj.date = next_date
obj.save()
导入日期时间、日历
obj=MyModel.objects.get(id=2)
下一个日期=obj.date+datetime.timedelta(天=365)
如果calendar.isleap(obj.date.year)和obj.date.datetime.datetime(obj.date.year,2,28):
next_date+=datetime.timedelta(天=1)
obj.date=下一个日期
obj.save()
好的,修复了。不幸的是,现在没有那么简单,但仍然比使用外部库(IMHO)更好。好的,修复了。不幸的是,现在没有这么简单,但仍然比使用外部库(IMHO)好。