Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Django - set DateTimeField default to timezone.datetime.max

I'm trying to set the default value for a datetime field to the max date timezone.datetime.max

from django.db import models
from django.utils import timezone

class Item(models.Model):
  id = models.AutoField(primary_key=True)
  deleted  = models.DateTimeField(default=timezone.datetime.max)

And i'm getting this error when ever i try to save a new object to the db

/usr/local/lib/python2.7/dist-packages/django/db/models/fields/__init__.py:903:
RuntimeWarning: DateTimeField Item.deleted received a naive datetime (9999-12-31 23:59:59.999999) while time zone support is active. RuntimeWarning)

So reading the docs on this issue i'v set USE_TZ=True and i've got pytz installed.

like image 518
haki Avatar asked Sep 18 '25 15:09

haki


1 Answers

timezone.datetime - this is regular python datetime.datetime module which is imported in django.utils.timezone and it returns regular datetime, so you need to make it aware:

timezone.make_aware(timezone.datetime.max, timezone.get_default_timezone())
like image 159
zymud Avatar answered Sep 22 '25 00:09

zymud