title: Model manager for start_date and end_date not working if date is set in the future
body: <p>Im trying to write a model Manager to get all entries that is published, and start_date is in the past of <code>now</code>. The strange thing is if I set the date to a value in the past (1 minute prior), everything works, but if I set the date in the future (1 minute ahead), the object does not show, even if I wait more than 1 minute to test. If I do nothing but restart the server, the entry is shown. But I can't restart the server everytime I publish an entry.</p>
  
  <p>Anyone see what could be wrong with this code? Or could this be done differently?</p>
  
  <pre><code>from django.utils import timezone
  
  now = timezone.now()
  
  
  def entries_published(queryset):
      """Return only the entries published"""
      return queryset.filter(
          models.Q(start_publication__lte=now) | \
          models.Q(start_publication=None),
          models.Q(end_publication__gt=now) | \
          models.Q(end_publication=None),
          status=PUBLISHED)
  
  
  class EntryPublishedManager(models.Manager):
      """Manager to retrieve published entries"""
  
      def get_queryset(self):
          """Return published entries"""
          return entries_published(
              super(EntryPublishedManager, self).get_queryset())
  
  
  
  class Entry(models.Model):
      title = models.CharField(max_length=255)
      slug = models.SlugField(max_length=255)
      categories = models.ManyToManyField(Category, related_name='entries', blank=True, null=True)
      creation_date = models.DateTimeField(auto_now_add=True)
      start_publication = models.DateTimeField(blank=True, null=True, help_text="Date and time the entry should be visible")
      end_publication = models.DateTimeField(blank=True, null=True, help_text="Date and time the entry should be removed from the site")    
      status = models.IntegerField(choices=STATUS_CHOICES, default=DRAFT)
  
      objects = models.Manager()
      published = EntryPublishedManager()
  </code></pre>
  
  <p>My view is like this:</p>
  
  <pre><code>class EntryListView(ListView):
      context_object_name = "entry_list"
      paginate_by = 20
      queryset = Entry.published.all().order_by('-start_publication') 
  </code></pre>
  
  <h1>Edit:</h1>
  
  <p>If I move <code>now = timezone.now()</code> inside the def for <code>entries_published</code> the <code>CategoryDetail</code> view gets the correct published entries. Any idea why <code>EntryListView</code> does not show the correct ones? </p>
  
  <p>Here is my <code>CategoryDetail</code> view</p>
  
  <pre><code>#View for listing one category with all connected and published entries
  class CategoryDetail(ListView):
  
      paginate_by = 20
  
      def get_queryset(self):
          self.category = get_object_or_404(Category, slug=self.kwargs['slug'])
          return Entry.published.filter(categories=self.category).order_by('-start_publication', 'title')
  
      def get_context_data(self, **kwargs):
          # Call the base implementation first to get a context
          context = super(CategoryDetail, self).get_context_data(**kwargs)
          # Add in the category
          context['category'] = self.category
          return context
  </code></pre>
  
  <h1>Edit 2.</h1>
  
  <p>If I change my <code>EntryListView</code> to this:</p>
  
  <pre><code>class EntryListView(ListView):
  
      model = Entry
  
      context_object_name = "news_list"
      paginate_by = 20
  
      def get_queryset(self):
          return Entry.published.all().order_by('-start_publication')
  </code></pre>
  
  <p>Everything works. Strange, but I don't care.</p>