Форум сайта python.su
Всем привет. Прошу направить меня на путь истинный по следующему вопросу:
-есть простенькая форма для поиска по базе:
...
<form action="/search/" method="get">
<input type="text" name="q">
<input type="submit" value="Найти">
</form>
...
...
def search(request):
q = request.GET['q']
man_list = Manufact.objects.filter(naim_man__icontains=unicode(q))
paginator = Paginator(man_list, 2)
page = request.GET.get('page','1')
try:
manufacts = paginator.page(page)
except PageNotAnInteger:
manufacts = paginator.page(1)
except EmptyPage:
manufacts = paginator.page(paginator.num_pages)
return render_to_response('search_results.html',
{"manufacts": manufacts, "man_list": man_list})
...
{% for m in manufacts.object_list %}
<br>{{ m.naim_man }}</br>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if manufacts.has_previous %}
<a href="?page={{ manufacts.previous_page_number }}">Prev</a>
{% endif %}
<span class="current">
Page {{ manufacts.number }} of {{ manufacts.paginator.num_pages }}
</span>
{% if manufacts.has_next %}
<a href="?page={{ manufacts.next_page_number }}">Next</a>
{% endif %}
</span>
</div>
MultiValueDictKeyError at /search/
"Key 'q' not found in <QueryDict: {u'page': [u'2']}>"
Офлайн
Паджинация здесь не при чем. Просто измените код получения параметра “q” на что-то типа такого:
q = request.GET.get('q', '')
Офлайн
Ziro, спасибо Вам большое, теперь все ОК)
Офлайн