2
我有兩個字段用於段落模型,其中一個是ManyToMany字段。使用SQS和相關數據(Haystack)
class Tag(models.Model):
tag = models.CharField(max_length=500)
def __unicode__(self):
return self.tag
admin.site.register(Tag)
class Paragraph(models.Model):
article = models.ForeignKey(Article)
text = models.TextField()
tags = models.ManyToManyField(Tag)
def __unicode__(self):
return "Headline: " + self.article.headline + " Tags: " + ', '.join([t.tag for t in self.tags.all()])
admin.site.register(Paragraph)
我的.txt文件反映了指數的多對多關係tags-
{{object.text}}
{% for tag in object.tags.all %}
{{tag.tag}}
{% endfor %}
我views.py然後使用SQS搜索所有標籤(我要完成包括文字之前,這個第一字段)並檢索這些。所以在這種情況下,查詢是「政治」 -
def politics(request):
paragraphs = []
sqs = SearchQuerySet().filter(tag="Politics")
paragraphs = [a.object for a in sqs[0:10]]
return render_to_response("search/home_politics.html",{"paragraphs":paragraphs},context_instance=RequestContext(request))
編輯: 和我search_indexes.py
class ParagraphIndex(indexes.SearchIndex, indexes.Indexable):
text= indexes.CharField(document=True, use_template=True)
tags= indexes.CharField(model_attr='tags')
def get_model(self):
return Paragraph
def index_queryset(self):
return self.get_model().objects
def load_all_queryset(self):
# Pull all objects related to the Paragraph in search results.
return Paragraph.objects.all().select_related()
然而,這並不retrive任何東西,即使少數幾款有是標籤「政治」。我在這裏錯過了什麼,或者我應該以另一種方式處理相關數據?我是Haystack的初學者,所以任何幫助將非常感激。提前致謝!