Django和Haystack IntegerField在返回时转换为列表

时间:2012-03-28 16:31:42

标签: python django solr django-haystack

我是干草堆的新手,所以这就是为什么解释这个问题可能不那么清楚。 在haystack中存储IntegerField时遇到问题。 这是我的索引模型的主要部分,问题是:

class SomeIndex(ModelSearchIndex):
    class Meta:
        model = SomeModel

    company = IntegerField()

    def prepare_company(self, obj):
        return obj.company.pk

在SomeModel的公司字段中是FK,所以我决定将其作为IntegerField提供。我已检查on update_index(using pdb.set_trace()) company字段的值正在保存为正确的整数位(我在haystack/indexes.py中的SearchIndex模型的prepare方法中看到它)。但是当我尝试使company字段的索引项不为空时 - 得到错误:

TypeError: int() argument must be a string or a number, not 'list'

我更深入地了解了haystack/backends/sorl_backend.py SearchBackend.search方法,并且在raw_results = self.conn.search(query_string, **kwargs) company我的[1]字段值中获得结果时,列表是company

这可能是什么原因?为什么{{1}}作为列表返回而不是int?

感谢您的回答!

0 个答案:

没有答案