﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
11984	Problem with date_hierarchy in Django 1.1 - Truncated incorrect datetime value: '0000-01-01 00:00:00'	sergey.g.aleshin@…	sorin	"I have simple model:


{{{
class News(models.Model):
	text_r = models.TextField(blank=True)
	text_e = models.TextField(blank=True)
	url = models.CharField(max_length=765, blank=True)
	newsdate = models.DateField(null=True, blank=True)
	red = models.IntegerField(null=True, blank=True)
	
	def title_r(self):
		return get_n_chars(self.text_r, 50)
	
	def title_e(self):
		return get_n_chars(self.text_e, 50)
	
	def __unicode__(self):
		return self.title_r() or self.title_e()
}}}


And admin interface to it:


{{{
from django.contrib import admin
from jsite.models import News

class NewsAdmin(admin.ModelAdmin):
	date_hierarchy = 'newsdate'
	list_display = ('newsdate', 'title_r', 'title_e')
	
admin.site.register(News, NewsAdmin)
}}}


Admin interface always fails to display list of objects:

{{{
Environment:

Request Method: GET
Request URL: http://bsd2:8000/admin/jsite/news/
Django Version: 1.1
Python Version: 2.5.4
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.admindocs',
 'django.contrib.admin',
 'django.contrib.sites',
 'django.contrib.flatpages',
 'journals.jsite']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')


Template error:
In template /usr/local/lib/python2.5/site-packages/django/contrib/admin/templates/admin/change_list.html, error at line 60
   Caught an exception while rendering: invalid literal for int() with base 10: 'None'
   50 :       {% endif %}


   51 :     {% endblock %}


   52 :     {% if cl.formset.errors %}


   53 :         <p class=""errornote"">


   54 :         {% blocktrans count cl.formset.errors|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}


   55 :         </p>


   56 :         <ul class=""errorlist"">{% for error in cl.formset.non_field_errors %}<li>{{ error }}</li>{% endfor %}</ul>


   57 :     {% endif %}


   58 :     <div class=""module{% if cl.has_filters %} filtered{% endif %}"" id=""changelist"">


   59 :       {% block search %}{% search_form cl %}{% endblock %}


   60 :       {% block date_hierarchy %} {% date_hierarchy cl %} {% endblock %}


   61 : 


   62 :       {% block filters %}


   63 :         {% if cl.has_filters %}


   64 :           <div id=""changelist-filter"">


   65 :             <h2>{% trans 'Filter' %}</h2>


   66 :             {% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %}


   67 :           </div>


   68 :         {% endif %}


   69 :       {% endblock %}


   70 :       


Traceback:
File ""/usr/local/lib/python2.5/site-packages/django/core/handlers/base.py"" in get_response
  92.                 response = callback(request, *callback_args, **callback_kwargs)
File ""/usr/local/lib/python2.5/site-packages/django/contrib/admin/options.py"" in wrapper
  226.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File ""/usr/local/lib/python2.5/site-packages/django/views/decorators/cache.py"" in _wrapped_view_func
  44.         response = view_func(request, *args, **kwargs)
File ""/usr/local/lib/python2.5/site-packages/django/contrib/admin/sites.py"" in inner
  186.             return view(request, *args, **kwargs)
File ""/usr/local/lib/python2.5/site-packages/django/contrib/admin/options.py"" in changelist_view
  986.         ], context, context_instance=context_instance)
File ""/usr/local/lib/python2.5/site-packages/django/shortcuts/__init__.py"" in render_to_response
  20.     return HttpResponse(loader.render_to_string(*args, **kwargs), **httpresponse_kwargs)
File ""/usr/local/lib/python2.5/site-packages/django/template/loader.py"" in render_to_string
  108.     return t.render(context_instance)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  178.         return self.nodelist.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  779.                 bits.append(self.render_node(node, context))
File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"" in render_node
  71.             result = node.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/loader_tags.py"" in render
  97.         return compiled_parent.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  178.         return self.nodelist.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  779.                 bits.append(self.render_node(node, context))
File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"" in render_node
  71.             result = node.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/loader_tags.py"" in render
  97.         return compiled_parent.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  178.         return self.nodelist.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  779.                 bits.append(self.render_node(node, context))
File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"" in render_node
  71.             result = node.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/loader_tags.py"" in render
  24.         result = self.nodelist.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  779.                 bits.append(self.render_node(node, context))
File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"" in render_node
  71.             result = node.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/loader_tags.py"" in render
  24.         result = self.nodelist.render(context)
File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"" in render
  779.                 bits.append(self.render_node(node, context))
File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"" in render_node
  81.             raise wrapped

Exception Type: TemplateSyntaxError at /admin/jsite/news/
Exception Value: Caught an exception while rendering: invalid literal for int() with base 10: 'None'

Original Traceback (most recent call last):
  File ""/usr/local/lib/python2.5/site-packages/django/template/debug.py"", line 71, in render_node
    result = node.render(context)
  File ""/usr/local/lib/python2.5/site-packages/django/template/__init__.py"", line 936, in render
    dict = func(*args)
  File ""/usr/local/lib/python2.5/site-packages/django/contrib/admin/templatetags/admin_list.py"", line 313, in date_hierarchy
    } for year in years]
  File ""/usr/local/lib/python2.5/site-packages/django/db/models/query.py"", line 106, in _result_iter
    self._fill_cache()
  File ""/usr/local/lib/python2.5/site-packages/django/db/models/query.py"", line 692, in _fill_cache
    self._result_cache.append(self._iter.next())
  File ""/usr/local/lib/python2.5/site-packages/django/db/models/sql/subqueries.py"", line 397, in results_iter
    date = typecast_timestamp(str(date))
  File ""/usr/local/lib/python2.5/site-packages/django/db/backends/util.py"", line 68, in typecast_timestamp
    if not ' ' in s: return typecast_date(s)
  File ""/usr/local/lib/python2.5/site-packages/django/db/backends/util.py"", line 53, in typecast_date
    return s and datetime.date(*map(int, s.split('-'))) or None # returns None if s is null
ValueError: invalid literal for int() with base 10: 'None'
}}}


In fact, typecast_date gots 'None' (as string, not None) as s parameter value

OS: FreeBSD 6.4, Python 2.5.4, Django 1.1 from ports, MySQL 5.1.36
"	Bug	closed	contrib.admin	1.1	Normal	wontfix		sorin	Design decision needed	1	0	1	0	0	0
