<p>谢谢你奥雷亚先生</p>
<p>但我的解决方案是使用一个简单的prepare函数:</p>
<pre><code>class TutorialIndex(indexes.SearchIndex, indexes.Indexable):
"""
Index the tutorials
"""
text = indexes.CharField(document=True, use_template=True)
tut_id = indexes.IntegerField(model_attr='tut_id')
cnt_body = indexes.CharField(model_attr='cnt_body')
mta_title = indexes.CharField()
mta_views = indexes.CharField()
def get_model(self):
"""
Return the current model
"""
return TutorialContents
def get_updated_field(self):
"""
Return the update date tracking field
"""
return "cnt_date"
def index_queryset(self, using=None):
"""
Used when the entire index for model is updated.
"""
return self.get_model().objects.all()
def prepare(self, object):
"""
Prepare the search data
"""
self.prepared_data = super(TutorialIndex, self).prepare(object)
# Retrieve the tutorial metas and return the prepared data
meta = get_tutorial_meta(id=object.tut_id)
self.prepared_data['mta_title'] = meta.mta_title
self.prepared_data['mta_views'] = meta.mta_views
return self.prepared_data
</code></pre>