Hi Daniel, A naïve datetime is a datetime that doesn't have a timezone. If you have USE_TZ=True enabled in your settings file (which is the default for new projects), Django expects you to fully specify datetime objects with a timezone; if you don't, you get the warning you've seen, because the datetime you've provided is ambiguous. Django can guess, but there's no guarantee that the guess will be correct.
The django.utils.timezone package provides a few utilities to convert naïve datetimes to timezone-enabled datetimes. I'd also suggest looking into pytz, which provides a regularly updated database of the world's timezones. Yours, Russ Magee %-) On Wed, Nov 19, 2014 at 8:38 PM, Daniel Grace <[email protected]> wrote: > Hi, > > Here is my model: > class Flow(models.Model): > ref = models.CharField(max_length=32) > state = models.ForeignKey(State) > flow_type = models.ForeignKey(Type) > created = models.DateTimeField(db_index=True, auto_now_add=True) > modified = models.DateTimeField(db_index=True, auto_now=True) > version = models.IntegerField() > def __str__(self): > return str(self.id) > > Here is my test.py file: > import warnings > warnings.filterwarnings( > 'error', r"DateTimeField .* received a naive datetime", > RuntimeWarning, r'django\.db\.models\.fields') > > > In settings.py: > TIME_ZONE = 'Europe/London' > USE_TZ = True > > Here is what happens when I run the test script: > >python manage.py test flow > Creating test database for alias 'default'... > Traceback (most recent call last): > File "manage.py", line 10, in <module> > execute_from_command_line(sys.argv) > File "C:\landy\lib\site-packages\django\core\management\__init__.py", > line 385 > , in execute_from_command_line > utility.execute() > File "C:\landy\lib\site-packages\django\core\management\__init__.py", > line 377 > , in execute > self.fetch_command(subcommand).run_from_argv(self.argv) > File > "C:\landy\lib\site-packages\django\core\management\commands\test.py", lin > e 50, in run_from_argv > super(Command, self).run_from_argv(argv) > File "C:\landy\lib\site-packages\django\core\management\base.py", line > 288, in > run_from_argv > self.execute(*args, **options.__dict__) > File > "C:\landy\lib\site-packages\django\core\management\commands\test.py", lin > e 71, in execute > super(Command, self).execute(*args, **options) > File "C:\landy\lib\site-packages\django\core\management\base.py", line > 338, in > execute > output = self.handle(*args, **options) > File > "C:\landy\lib\site-packages\django\core\management\commands\test.py", lin > e 88, in handle > failures = test_runner.run_tests(test_labels) > File "C:\landy\lib\site-packages\django\test\runner.py", line 147, in > run_test > s > old_config = self.setup_databases() > File "C:\landy\lib\site-packages\django\test\runner.py", line 109, in > setup_da > tabases > return setup_databases(self.verbosity, self.interactive, **kwargs) > File "C:\landy\lib\site-packages\django\test\runner.py", line 299, in > setup_da > tabases > serialize=connection.settings_dict.get("TEST_SERIALIZE", True), > File "C:\landy\lib\site-packages\django\db\backends\creation.py", line > 374, in > create_test_db > test_flush=True, > File "C:\landy\lib\site-packages\django\core\management\__init__.py", > line 115 > , in call_command > return klass.execute(*args, **defaults) > File "C:\landy\lib\site-packages\django\core\management\base.py", line > 338, in > execute > output = self.handle(*args, **options) > File > "C:\landy\lib\site-packages\django\core\management\commands\migrate.py", > line 160, in handle > executor.migrate(targets, plan, fake=options.get("fake", False)) > File "C:\landy\lib\site-packages\django\db\migrations\executor.py", line > 63, i > n migrate > self.apply_migration(migration, fake=fake) > File "C:\landy\lib\site-packages\django\db\migrations\executor.py", line > 97, i > n apply_migration > migration.apply(project_state, schema_editor) > File "C:\landy\lib\site-packages\django\db\migrations\migration.py", > line 107, > in apply > operation.database_forwards(self.app_label, schema_editor, > project_state, ne > w_state) > File > "C:\landy\lib\site-packages\django\db\migrations\operations\fields.py", l > ine 131, in database_forwards > schema_editor.alter_field(from_model, from_field, to_field) > File "C:\landy\lib\site-packages\django\db\backends\schema.py", line > 509, in a > lter_field > self._alter_field(model, old_field, new_field, old_type, new_type, > old_db_pa > rams, new_db_params, strict) > File "C:\landy\lib\site-packages\django\db\backends\schema.py", line > 612, in _ > alter_field > new_default = self.effective_default(new_field) > File "C:\landy\lib\site-packages\django\db\backends\schema.py", line > 183, in e > ffective_default > default = field.get_db_prep_save(default, self.connection) > File "C:\landy\lib\site-packages\django\db\models\fields\__init__.py", > line 62 > 7, in get_db_prep_save > prepared=False) > File "C:\landy\lib\site-packages\django\db\models\fields\__init__.py", > line 12 > 86, in get_db_prep_value > value = self.get_prep_value(value) > File "C:\landy\lib\site-packages\django\db\models\fields\__init__.py", > line 12 > 78, in get_prep_value > RuntimeWarning) > RuntimeWarning: DateTimeField Flow.created received a naive datetime > (2014-11-19 > 12:28:38.831258) while time zone support is active. > > What on earth is causing this "naive datetime" warning? > > Thanks > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/9483e04e-242a-4252-a707-f51e6763ef2c%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/9483e04e-242a-4252-a707-f51e6763ef2c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAJxq84_5he8FoEnVAg1CWmO1ZpQLbOd86kGYsWq_t8H3yV8JZg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

