Я новичок в стоге сена, и поэтому объяснение проблемы может быть не столь ясным.
Возникла проблема с хранением 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
сохраняется как правильная целая цифра (я вижу это в методе подготовки модели SearchIndex в haystack/indexes.py
). Но когда я пытаюсь получить проиндексированные элементы с полем 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)
my company
, это список, например. [1]
.
В чем может быть причина этого? Почему company
возвращается как список, а не как int?
Спасибо за ответы!