我是干草堆的新手,所以这就是为什么解释这个问题可能不那么清楚。 在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?
感谢您的回答!