0

如何索引由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)

并且Team具有tagTagField 字段的模型都很好:

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)

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

非常感谢丰富

4

1 回答 1

0

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

拥有这种简单的字段类型也使 Django Material form 可以轻松地为静态标签池添加选择器,从而赢得胜利。

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

于 2016-10-17T15:09:11.577 回答