Мне бы хотелось, чтобы окно поиска было интегрировано в навигационную панель, которая появляется в верхней части каждой страницы (эй, есть пример того, о чем я говорю, в верхней части этой страницы StackOverflow).
Возможно, файл nav.html может выглядеть следующим образом:
<ul id="menu">
<li><a href="/products"></li>
<li><a href="/service"></li>
<li>{{ nav_search_form.as_p }}</li>
</ul>
Возможно, Forms.py может содержать:
class NavSearchForm(forms.Form):
query = forms.CharField(max_length=30, required=False)
По принципу СУХОЙ я не хочу, чтобы views.py искал «запрос» на каждой странице, например:
def ProductsPage(request):
search_form = NavSearchForm()
if request.GET.has_key('query'):
query = request.GET['query'].strip()
# deal with 'Products' here...
def ServicePage(request):
search_form = NavSearchForm()
if request.GET.has_key('query'):
query = request.GET['query'].strip()
# deal with 'Service' here...
У меня есть и я могу легко запрограммировать страницу, которая будет обрабатывать поисковый запрос и показывать результаты. Как лучше всего извлечь условия поиска и направить пользователя на эту страницу поиска (вернуть HttpResponseRedirect ('/ results /? Query =' + query)), не разбирая request.GET на каждой странице?