Джанго Хейстек - представление на основе классов - PullRequest
2 голосов
/ 24 августа 2011

Существуют ли какие-либо учебные пособия или примеры, кроме одного на официальном веб-сайте haystack о том, как использовать представления на основе классов?

Что мне действительно нужно, так это чтобы у меня была возможность отображать результаты нескольких моделей, когда пользователь выполняет поиск, и из того, что я понимаю, мне нужно будет создать свой собственный вид и наследовать от SearchView, но примера на официальном веб-сайте недостаточно для меня.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

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

0 голосов
/ 15 ноября 2012

Представления по умолчанию в стоге сена не являются правильными или, я должен сказать, типичными представлениями на основе классов.Насколько я знаю, они уникальны для Haystack.

Говоря, что их не слишком сложно разделить на подклассы, просто сделайте что-то вроде:

class CustomSearchView(FacetedSearchView):
    def create_response(self):
        if self.request.method == 'POST':
            ....

        if self.request.method == 'GET':
            ....

        return super(CustomSearchView, self).create_response()

    def extra_context(self):
        # add your context

Как видите, они где-то естьмежду представлениями на основе классов и представлений на основе функций.

В вашем случае вам, вероятно, понадобится создать SearchIndexes для всех ваших моделей, а затем все, что вам нужно будет сделать, это правильно настроить исходный запрос в urls.py

...