title: Update Django Haystack search index for prepared field
body: <p>I'm using Django Haystack.
  Here is my code:</p>
  
  <p><strong>settings.py</strong></p>
  
  <pre><code>HAYSTACK_CONNECTIONS = {
      'default': {
          'ENGINE': 'haystack.backends.elasticsearch_backend.ElasticsearchSearchEngine',
          'URL': 'http://127.0.0.1:9200/',
          'INDEX_NAME': 'haystack',
      },
  }
  
  HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor'
  </code></pre>
  
  <p><strong>search_indexes.py</strong></p>
  
  <pre><code>class PostIndex(indexes.SearchIndex, indexes.Indexable):
      text = indexes.CharField(document=True, use_template=True)
      owner = indexes.CharField(model_attr='owner')
      image_url = indexes.CharField()
  
      def get_model(self):
          return Post
  
      def prepare_image_url(self, obj):
          # Get first images for resulted search objects
          return [image.image_main_page.url for image in obj.images.order_by('id')[:1]]
  
      def index_queryset(self, using=None):
          """Used when the entire index for model is updated."""
          return self.get_model().objects.all()
  </code></pre>
  
  <p>As you see I use RealtimeSignalProcessor to make it index on Post instance creation or update. And it actually does index the instance on creation except <strong>image_url</strong> field which is using prepare method. It indexed though on instance update.</p>
  
  <p>Question is why it isn't being indexed on creation?</p>
  
  <p>Any pointers are appreciated.</p>