Index: django/django/views/generic/date_based.py
===================================================================
--- django/django/views/generic/date_based.py	(revision 3510)
+++ django/django/views/generic/date_based.py	(working copy)
@@ -235,9 +235,12 @@
     model = queryset.model
     now = datetime.datetime.now()
 
-    lookup_kwargs = {
-        '%s__range' % date_field: (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max)),
-    }
+    lookup_kwargs = {}
+    from django.db.models.fields import DateTimeField
+    if isinstance(model._meta.get_field(date_field), DateTimeField):
+        lookup_kwargs['%s__range' % date_field] = (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max)),
+    else:
+        lookup_kwargs[date_field] = date
 
     # Only bother to check current date if the date isn't in the past and future objects aren't requested.
     if date >= now.date() and not allow_future:
@@ -304,9 +307,12 @@
     model = queryset.model
     now = datetime.datetime.now()
 
-    lookup_kwargs = {
-        '%s__range' % date_field: (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max)),
-    }
+    lookup_kwargs = {}
+    from django.db.models.fields import DateTimeField
+    if isinstance(model._meta.get_field(date_field), DateTimeField):
+        lookup_kwargs['%s__range' % date_field] = (datetime.datetime.combine(date, datetime.time.min), datetime.datetime.combine(date, datetime.time.max)),
+    else:
+        lookup_kwargs[date_field] = date
 
     # Only bother to check current date if the date isn't in the past and future objects aren't requested.
     if date >= now.date() and not allow_future:
