【问题标题】:Django (1.9) Watson index Django Tagging TagFieldDjango (1.9) 沃森索引 Django Tagging TagField
【发布时间】:2016-10-03 18:01:56
【问题描述】:

如何索引由Django Tagging (v0.4.5) TagField 管理器管理的字段?

标签都正常工作,Watson (v1.2.1) 正在索引模型并返回搜索字符和文本字段的结果,但如果搜索词是标签,则不会。

注册是在 AppConfig 中完成的:

from __future__ import unicode_literals
from django.apps import AppConfig
from watson import search as watson

class TeamConfig(AppConfig):
    name = 'team'
    def ready(self):
        Team = self.get_model("Team")
        watson.register(Team, fields=("title_text", "tagline", "description", "tags"))
        Member = self.get_model("Member")
        watson.register(Member)

具有tag TagField 字段的Team 模型都很好:

import blahs
...
from watson import search as watson
from tagging.fields import TagField
...

class Team(models.Model):
    pub_date = models.DateField('date published', auto_now_add=True)
    title_text = models.CharField('Name', max_length=200, blank=False,
    ...
    tags = TagField()
    is_active = models.BooleanField('Active?', default=True)

有人知道如何让字段索引与字符或文本字段相同吗?

非常感谢 丰富

【问题讨论】:

    标签: django search indexing django-tagging django-watson


    【解决方案1】:

    最后,我删除了 Django Tagging,创建了我自己的“标签”模型,只需使用日期和名称字符串,然后在每个要标记的模型中添加一个 ManyToMany 字段。需要一些额外的逻辑来更新该标签池,但这似乎很容易通过循环来测试是否 tag.name.exists() 在保存关联模型时。

    拥有这种简单的字段类型也使得 Django Material 表单方式也很容易为静态标签池添加选择器,所以赢了。

    我仍然想知道是否有人可以通过模型管理器返回文本,因为我只学习 python 和 django 开/关几个月并且真的很喜欢它,所以想做正确的事情。

    【讨论】:

      猜你喜欢
      • 2010-12-10
      • 2015-03-11
      • 1970-01-01
      • 2011-09-15
      • 2010-09-25
      • 1970-01-01
      • 2018-03-30
      • 2017-02-23
      • 2019-05-04
      相关资源
      最近更新 更多