From 5fee36973cc3a8f74b04f500264e3f5831f781aa Mon Sep 17 00:00:00 2001 From: Chris Jerdonek Date: Tue, 27 Jul 2021 23:12:01 -0700 Subject: [PATCH] Optimized BaseDatabaseSchemaEditor._effective_default() a bit, This eliminates an unneeded call to datetime.now() when field.get_internal_type() equals "DateTimeField". --- django/db/backends/base/schema.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/django/db/backends/base/schema.py b/django/db/backends/base/schema.py index d117241fee..15ccda52e2 100644 --- a/django/db/backends/base/schema.py +++ b/django/db/backends/base/schema.py @@ -316,14 +316,15 @@ class BaseDatabaseSchemaEditor: else: default = '' elif getattr(field, 'auto_now', False) or getattr(field, 'auto_now_add', False): - default = datetime.now() internal_type = field.get_internal_type() - if internal_type == 'DateField': - default = default.date() - elif internal_type == 'TimeField': - default = default.time() - elif internal_type == 'DateTimeField': + if internal_type == 'DateTimeField': default = timezone.now() + else: + default = datetime.now() + if internal_type == 'DateField': + default = default.date() + elif internal_type == 'TimeField': + default = default.time() else: default = None return default