Как сделать пагинацию при отправке POST-формы в Django View
Я хотел бы использовать пагинации в django при отправке метода post моему представлению:
При нажатии на submit он правильно возвращает значения, но когда я нажимаю "следующая страница", он возвращает пустую таблицу.
html:
<form action="{% url 'maintenance_issue_search' %}" method="POST" enctype="multipart/form-data" id="form" name="form">
{% csrf_token %}
<div style="text-align:left;" class="form-row">
<div class="form-group mr-2">
<label for="date">Date Start</label>
<input class="form-control" id="date" name="date" placeholder="YYYY-MM-DD"
value="{{ start_date }}" type="date" required>
</div>
<div class="form-group mr-2">
<label for="date1">Date End</label>
<input class="form-control" id="date1" name="date1" placeholder="YYYY-MM-DD"
value="{{ end_date }}" type="date" required>
</div>
<div style="text-align:left;" class="form-group">
<label for="select_status">Status</label>
<select name="select_status" id="select_status" style="float:left;" class="form-control" multiple>
<option value="Pending" selected>Pending</option>
<option value="On Going">On Going</option>
<option value="Consent OK">Consent Ok</option>
<option value="Approve OK">Approve Ok</option>
<option value="Completed">Completed</option>
<option value="Not Approved">Not Approved</option>
</select>
</div>
<section class="buttons">
<div style="text-align:center;float:left" class="form-group">
<div class="form-group col-md-6">
<button type="submit" class="btn btn-info">Search </button>
</div>
</div>
</section>
</div>
</form>
<!--Pagination-->
{% if issue_list.has_other_pages %}
<ul class="table-pagination">
{% if issue_list.has_previous %}
<li><a href="?page=1">First</a></li>
<li><a href="?page={{ issue_list.previous_page_number }}">Previous</a></li>
{% endif %}
<span class="current">
Page {{ issue_list.number }} of {{ issue_list.paginator.num_pages }}
</span>
{% if issue_list.has_next %}
<li><a href="?page={{ issue_list.next_page_number }}">Next></a></li>
<li><a href="?page={{ issue_list.paginator.num_pages }}">Last></a></li>
{% endif %}
</ul>
{% endif %}
Просмотров:
def maintenance_issue_search(request):
start_date = request.POST.get('date')
end_date = request.POST.get('date1')
status = request.POST.getlist('select_status')
all_issue_list = MaintenanceIssue.objects.filter(
register_dt__date__range=(start_date, end_date), issue_status__in = status)\
.order_by('-issue_status','register_dt')
page = request.GET.get('page', 1)
paginator = Paginator(all_issue_list, 10)
try:
issue_list = paginator.page(page)
except PageNotAnInteger:
issue_list = paginator.page(1)
except EmptyPage:
issue_list = paginator.page(paginator.num_pages)
context = {'issue_list':issue_list,
'start_date':start_date,
'end_date':end_date,
'status':status}
return render(request, 'maintenance/maintenanceIssueList.html', context)
Пагинация не работает, когда я использую ее с post формой, потому что пагинация делается методом get. Какие-нибудь рекомендации по решению этой проблемы?