Django и Haystack IntegerField конвертируются в список по возвращении - PullRequest
1 голос
/ 28 марта 2012

Я новичок в стоге сена, и поэтому объяснение проблемы может быть не столь ясным. Возникла проблема с хранением 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?

Спасибо за ответы!

...