title: Django AttributeError 'datetime.date' object has no attribute 'utcoffset'
body: <p>I'm a newbie in Django, so sorry if explanation of problem looks weird.</p>
  
  <p>I created a blog app within a Django project. </p>
  
  <p><strong>models.py</strong>:</p>
  
  <pre><code>from django.db import models
  
  class Blog(models.Model):
      title = models.CharField(max_length=255)
      pub_date = models.DateTimeField() # issue appears because of this statement
      body = models.TextField()
      image = models.ImageField(upload_to='images/')
  </code></pre>
  
  <p>When I create a new blog object in admin page of site, everything's fine and object gets created and stored to the database. But when I want to edit this blog object (clicking on it in the list of blogs), I get this error:</p>
  
  <pre><code>AttributeError at /admin/blog/blog/2/change/
  'datetime.date' object has no attribute 'utcoffset'
  </code></pre>
  
  <p>Full traceback:</p>
  
  <pre><code>Environment:
  
  
  Request Method: GET
  Request URL: http://localhost:8000/admin/blog/blog/2/change/
  
  Django Version: 2.0.2
  Python Version: 3.6.4
  Installed Applications:
  ['jobs.apps.JobsConfig',
   'blog.apps.BlogConfig',
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles']
  Installed Middleware:
  ['django.middleware.security.SecurityMiddleware',
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.common.CommonMiddleware',
   'django.middleware.csrf.CsrfViewMiddleware',
   'django.contrib.auth.middleware.AuthenticationMiddleware',
   'django.contrib.messages.middleware.MessageMiddleware',
   'django.middleware.clickjacking.XFrameOptionsMiddleware']
  
  
  Template error:
  In template C:\Users\LENOVO\Anaconda3\lib\site-packages\django\contrib\admin\templates\admin\includes\fieldset.html, error at line 19
     'datetime.date' object has no attribute 'utcoffset'
     9 :             {% for field in line %}
     10 :                 &lt;div{% if not line.fields|length_is:'1' %} class="field-box{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% endif %}&gt;
     11 :                     {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
     12 :                     {% if field.is_checkbox %}
     13 :                         {{ field.field }}{{ field.label_tag }}
     14 :                     {% else %}
     15 :                         {{ field.label_tag }}
     16 :                         {% if field.is_readonly %}
     17 :                             &lt;div class="readonly"&gt;{{ field.contents }}&lt;/div&gt;
     18 :                         {% else %}
     19 :                              {{ field.field }} 
     20 :                         {% endif %}
     21 :                     {% endif %}
     22 :                     {% if field.field.help_text %}
     23 :                         &lt;div class="help"&gt;{{ field.field.help_text|safe }}&lt;/div&gt;
     24 :                     {% endif %}
     25 :                 &lt;/div&gt;
     26 :             {% endfor %}
     27 :         &lt;/div&gt;
     28 :     {% endfor %}
     29 : &lt;/fieldset&gt;
  
  
  Traceback:
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\core\handlers\exception.py" in inner
    35.             response = get_response(request)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
    158.                 response = self.process_exception_by_middleware(e, request)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\core\handlers\base.py" in _get_response
    156.                 response = response.render()
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\response.py" in render
    106.             self.content = self.rendered_content
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\response.py" in rendered_content
    83.         content = template.render(context, self._request)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\backends\django.py" in render
    61.             return self.template.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    175.                     return self._render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in _render
    167.         return self.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\loader_tags.py" in render
    155.             return compiled_parent._render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in _render
    167.         return self.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\loader_tags.py" in render
    155.             return compiled_parent._render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in _render
    167.         return self.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\loader_tags.py" in render
    67.                 result = block.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\loader_tags.py" in render
    67.                 result = block.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\defaulttags.py" in render
    211.                     nodelist.append(node.render_annotated(context))
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\loader_tags.py" in render
    194.                 return template.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    177.                 return self._render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in _render
    167.         return self.nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\defaulttags.py" in render
    211.                     nodelist.append(node.render_annotated(context))
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\defaulttags.py" in render
    211.                     nodelist.append(node.render_annotated(context))
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\defaulttags.py" in render
    314.                 return nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\defaulttags.py" in render
    314.                 return nodelist.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    943.                 bit = node.render_annotated(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_annotated
    910.             return self.render(context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render
    999.         return render_value_in_context(output, context)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\template\base.py" in render_value_in_context
    978.             value = str(value)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\utils\html.py" in &lt;lambda&gt;
    371.     klass.__str__ = lambda self: mark_safe(klass_str(self))
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\boundfield.py" in __str__
    36.         return self.as_widget()
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\boundfield.py" in as_widget
    118.             **kwargs
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\widgets.py" in render
    234.         context = self.get_context(name, value, attrs)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\contrib\admin\widgets.py" in get_context
    104.         context = super().get_context(name, value, attrs)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\widgets.py" in get_context
    806.             value = self.decompress(value)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\widgets.py" in decompress
    894.             value = to_current_timezone(value)
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\forms\utils.py" in to_current_timezone
    176.     if settings.USE_TZ and value is not None and timezone.is_aware(value):
  
  File "C:\Users\LENOVO\Anaconda3\lib\site-packages\django\utils\timezone.py" in is_aware
    247.     return value.utcoffset() is not None
  
  Exception Type: AttributeError at /admin/blog/blog/2/change/
  Exception Value: 'datetime.date' object has no attribute 'utcoffset'
  </code></pre>
  
  <p>If I change <code>models.DateTimeField()</code> to <code>models.DateField()</code> or if I add <code>auto_now_add=True</code> to <code>DateTimeField</code> (so that it makes this field uneditable) everything becomes ok and blog object becomes editable without errors.</p>
  
  <p>So the question obviously is what caused this error and how to fix it?</p>
  
  <p>Django version 2.0.2 (also tried on 2.0.5)</p>
  
  <p>Python version 3.6.4</p>