Всем привет!
Начал освоение работы с формами и возник вопрос:
У меня есть страница с пагинацией, сделал выпадающий список, определяющий сколько элементов отображать на странице, в принципе работает, но при переходе на следующую страницу в форме отображается не примененное значение, а значение по умолчанию, как это поправить?
форма:
class NewsSeparatorForm (forms.Form):
news_sep = forms.ChoiceField(choices=((1, '1'), (2, '2'), (5, '5')), label='Выводить на странице:', initial=5)
представление :
def news_list(request, page=1):
news = News.objects.all().order_by('news_date')
sep = request.GET.get('news_sep', 5)
paginator = Paginator(news, sep)
form = forms.NewsSeparatorForm
try:
list_of_news = paginator.page(page)
except PageNotAnInteger:
list_of_news = paginator.page(1)
except EmptyPage:
list_of_news = paginator.page(paginator.num_pages)
return render(request, 'blag/show_news.html', {'list_of_news': list_of_news, 'form': form, 'sep': sep})
Шаблон:
<form action="{{form.choice_value}}" method="get">
{{ form }}
<input type="submit" value="Submit" />
</form>
.
.
.
<div class="pagination">
<span class="step-links">
{% if list_of_news.has_previous %}
<a href="{% url 'blag:news' %}page/{{ list_of_news.previous_page_number }}?news_sep={{sep}}">previous</a>
{% endif %}
<span class="current">
Page {{ list_of_news.number }} of {{ list_of_news.paginator.num_pages }}
</span>
{% if list_of_news.has_next %}
<a href="{% url 'blag:news' %}page/{{ list_of_news.next_page_number }}?news_sep={{sep}}">next</a>
{% endif %}
</span>
</div>