Как удалить элементы из Haystack SearchQuerySet - PullRequest
1 голос
/ 03 января 2012

В Django вы можете удалить элементы из QuerySet, выполнив это как задокументировано здесь :

queryset = QuerySet.remove(item)

Стог сена SearchQuerySet построен на QuerySet, но кажетсяметод удаления не был реализован.Кто-нибудь знает способ удаления элементов в SearchQuerySet?

FWIW Я пытаюсь сделать второй уровень фильтрации для клиента.По сути, я рассматриваю SearchQuerySet для пары конкретных свойств.Идея в том, что если у них его нет, я хочу удалить их.

Спасибо

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Вы пробовали использовать exclude? * Т.е. 1002 *

searchqueryset = searchqueryset.exclude(id=u'myapp.mymodel.%s' % item.pk)
2 голосов
/ 30 апреля 2012

Одна проблема, которую я вижу с этим решением, заключается в том, что searchqueryset выполняет поиск по различным моделям.Затем вы исключите все объекты с pk = item.pk, что вы не хотите делать.

Вот подход, который я использовал.Я преобразовал searchqueryset в список:

searchqueryset_list = list(searchqueryset)

Затем я могу удалить элемент:

searchqueryset_list.remove(item)

Хотя * searchqueryset_list * не является объектом SearchQuerySet, я могиспользуйте его в шаблонах, которые отображают html-страницу.

...