微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么django-haystack会多次运行对象准备?

如何解决为什么django-haystack会多次运行对象准备?

我的SearchIndex中有这个东西:

class UserIndex(SearchIndex,Indexable):
    text = CharField(document=True,use_template=True)
    likes = IntegerField()

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

    def get_model(self):
        return User

    def prepare_likes(self,obj):
        # Logging here just because it's the first "prepare" function.
        log.debug("Indexing %s: %d" % (obj.__class__.__name__,obj.pk))
        return obj.get_all_likes()

我的数据库中有一个对象。当我运行update_index时,log.debug对于带有pk 1的对象将被打印3次。

我在做什么错了?

解决方法

问题很简单,prepare_likes方法又被其他prepare_方法调用,导致了多个日志语句,使我认为整个索引不止发生一次。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。