美文网首页
django haystack全文检索

django haystack全文检索

作者: 青铜搬砖工 | 来源:发表于2019-03-06 14:05 被阅读0次

1.index与model字段关联

from .models import Post
from haystack import indexes


class PostIndex(indexes.SearchIndex, indexes.Indexable):
    text = indexes.CharField(document=True, use_template=True)
    title = indexes.CharField(model_attr="title")
    body = indexes.CharField(model_attr="body")
    def get_model(self):
        return Post

    def index_queryset(self, using=None):
        return self.get_model().objects.all()

text = indexes.CharField(document=True, use_template=True)这个是必须的,

title = indexes.CharField(model_attr="title")
body = indexes.CharField(model_attr="body")

通过model_attr关联Post模型里面的title,body字段。
title,body字段必须是templates/search/indexes/blog/post_text.txt里面声明的字段 post_text.txt的内容:

{{ object.title }}
{{ object.body }}

每次修改index的时候都要重新 使用python manage.py rebuild_index命令重新生成index。

2,前端获取model get_absolute_url

{% for post in page.object_list  %}
        <h4><a href="{{ post.object.get_absolute_url }}">{{ post.title }}</a></h4>
        {{ post.body|truncatewords:5 }}
    {% empty %}

必须使用post.object.get_absolute_url而不能使用post.get_absolute_url,否则会报url为None的错误。

相关文章

网友评论

      本文标题:django haystack全文检索

      本文链接:https://www.haomeiwen.com/subject/xnmtpqtx.html