我使用django-haystack
,它有一个视图SearchView
和一个表单SearchForm
。我在页面SearchForm
的{{1}}中看到此SearchView
,它就像一个魅力。
但我希望在我的所有页面中都有搜索表单。因此,我需要将其放在我的模板/search/
中,而不是特定于页面的模板base.html
。
但是上下文变量search.html
仅在我的视图{{ form }}
中可用,而不是在所有页面上都可用。
我该如何解决这个问题?我认为上下文处理器或中间件会这样做,但在中间件中这样做似乎有点过分。什么是正常的做法?我想其他许多人在我之前偶然发现了这个问题。
答案 0 :(得分:1)
最安全的解决方案是使用自定义模板标签 - 最好是包含标记(https://docs.djangoproject.com/en/1.6/howto/custom-template-tags/#inclusion-tags),这样就不会覆盖其他视图的上下文(因为使用'form'
作为上下文变量是常见的做法处理表格的观点。)
您可能仍需要滚动自己的搜索视图(基于默认搜索视图),以使整个过程按您的意愿运行...