如何自定义Haystack的SearchView以接受addtional URL参数?

joh*_*n2x 3 django django-haystack django-class-based-views

鉴于url conf:

r'^(?P<some_var>[-a-z0-9\.]*[a-z0-9\.]\.\w+)/search/$'
Run Code Online (Sandbox Code Playgroud)

如何将命名组传递some_var给Haystack的SearchView?

我想覆盖SearchView.get_results()以执行额外的过滤器取决于some_var.

这是最好的方法吗?

Chr*_*att 6

子类SearchView和覆盖__call__,它是类的"视图"部分.

from haystack.views import SearchView

class MySearchView(SearchView):

    def __call__(self, request, some_var):
        self.some_var = some_var
        return super(MySearchView, self).__call__(request)
Run Code Online (Sandbox Code Playgroud)

然后,您可以self.some_var在类的其他方法中使用.