Как проверить в конкретной модели по умолчанию в стоге сена? - PullRequest
1 голос
/ 24 января 2012

Я использую стог сена для поиска.По умолчанию он выполняет поиск по всем моделям, а затем предоставляет контрольный список моделей, проиндексированных для уточнения поиска.Есть ли способ, которым я могу переопределить эту функцию, то есть я могу сделать поиск в конкретной модели по умолчанию?Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Вы можете использовать метод моделей из SearchQuerySet:

http://docs.haystacksearch.org/dev/searchqueryset_api.html#models

или использовать зарезервированное имя поля django_ct, например:

SearchQuerySet().filter(django_ct='app_name.model_name')
1 голос
/ 24 января 2012

Вы можете переопределить ModelSearchForm , чтобы сделать это, попробуйте что-то вроде ниже, заменив app_label.model_name на модели, которые вы хотите искать по умолчанию.

class CustomModelSearchForm(ModelSearchForm):
    def __init__(self, *args, **kwargs):
        super(CustomModelSearchForm, self).__init__(*args, **kwargs)
        self.fields['models'].initial = ["app_label.model_name",]

urlpatterns = patterns('haystack.views',
    url(r'^$', SearchViewg(form_class=CustomModelSearchForm, name='haystack_search'),
)
...