Opened 4 years ago

Closed 4 years ago

#26346 closed Bug (duplicate)

Error in makemigrations while changing DateTimeField default value from timezone aware datetime to naive datetime.now()

Reported by: shahzebiam Owned by: nobody
Component: Migrations Version: 1.8
Severity: Normal Keywords: migrations, datetimefield migration, makemigrations, default date
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I have a DateTimeField in a model in models.py which i have given a default value of django.utils.timezone.now(). When i changed the default value to datetime.datetime.now() and ran the makemigrations command, it gave me an error in autodetector.py

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Python27\lib\site-packages\django\core\management\base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "C:\Python27\lib\site-packages\django\core\management\commands\makemigrations.py", line 125, in handle
    migration_name=self.migration_name,
  File "C:\Python27\lib\site-packages\django\db\migrations\autodetector.py", line 43, in changes
    changes = self._detect_changes(convert_apps, graph)
  File "C:\Python27\lib\site-packages\django\db\migrations\autodetector.py", line 186, in _detect_changes
    self.generate_altered_fields()
  File "C:\Python27\lib\site-packages\django\db\migrations\autodetector.py", line 850, in generate_altered_fields
    if old_field_dec != new_field_dec:
TypeError: can't compare offset-naive and offset-aware datetimes

as far as i know it is trying to compare a timezone aware date with a simple datetime which will not be possible for datetime objects.

Change History (1)

comment:1 Changed 4 years ago by Tim Graham

Resolution: duplicate
Status: newclosed

Duplicate of #24822

Note: See TracTickets for help on using tickets.
Back to Top