首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Haystack和Taggit

Django Haystack和Taggit
EN

Stack Overflow用户
提问于 2013-05-18 00:19:15
回答 1查看 1.3K关注 0票数 4

有没有人把Django taggit和干草堆一起用?我们如何才能使标签字段可以通过haystack进行索引?

我试过了:

代码语言:javascript
复制
class EventIndex(indexes.SearchIndex, indexes.Indexable):
        text = indexes.CharField( model_attr='descr_en', document=True, use_template=True)
        text_tr = indexes.CharField(model_attr='descr_tr')
        tags = indexes.MultiValueField()

        def prepare_text(self, obj):
            return '%s %s' % (obj.title_en, obj.descr_en)

        def prepare_text_tr(self, obj):
            return '%s %s' % (obj.title_tr, obj.descr_tr)

        def prepare_tags(self, obj):
            return [tag.name for tag in obj.tags.all()]

        def get_model(self):
            return Event

我正在使用一个自定义的搜索查询集来进行多语言搜索:

代码语言:javascript
复制
class MlSearchQuerySet(SearchQuerySet):
    def filter(self, **kwargs):
        """Narrows the search based on certain attributes and the default operator."""
        if 'content' in kwargs:
            kwd = kwargs.pop('content')
            currentLngCode = str(get_language())
            lngCode = settings.LANGUAGE_CODE
            if currentLngCode == lngCode: 
                kwdkey = "text" 
                kwargs[kwdkey] = kwd
            else:
                kwdkey = "text_%s" % currentLngCode
                kwargs[kwdkey] = kwd


        if getattr(settings, 'HAYSTACK_DEFAULT_OPERATOR', DEFAULT_OPERATOR) == 'OR':
           return self.filter_or(**kwargs)
        else:
            return self.filter_and(**kwargs)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-18 01:03:52

为了将标签添加到搜索索引中,我们将它们添加到我们的内容模板文件中,例如

代码语言:javascript
复制
{{ object.title }}
{{ object.body }}
{% for tag in object.tags.all %} {{ tag.name }} {% endfor %}
{{ object.user.get_full_name }}

我们还将其作为MultiValueField包含在内

代码语言:javascript
复制
tags = indexes.MultiValueField()

def prepare_tags(self, obj):
    return [tag.name for tag in obj.tags.all()]
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16613742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档