Django-Haystack:如何使用FacetedSearchView传递额外的上下文

时间:2017-09-28 12:46:39

标签: python django django-views django-haystack

这是我目前的观点。

class FacetedSearchView(BaseFacetedSearchView):

    form_class = FacetedProductSearchForm
    facet_fields = ['TopCategory']
    template_name = 'shop-grid-ls.html'
    paginate_by = 20
    context_object_name = 'object_list'


    extra = TopCategory.objects.all()

    def extra_context(self):
        return {
            'extra': self.extra,
        }

我无法访问模板中的extra个对象。如何通过FacetedSearchView传递上下文。 感谢。

1 个答案:

答案 0 :(得分:0)

您必须覆盖父类的get_context_data方法。 试试这个:

class FacetedSearchView(BaseFacetedSearchView):
    # ...

    def get_context_data(self, *args, **kwargs):
        context = super(FacetedSearchView, self).get_context_data(*args, **kwargs)
        extra = TopCategory.objects.all()
        context.update({'extra': extra})
        return context

您不应该在方法之外定义变量extra。我希望你知道类属性和实例属性之间的区别。