私はPython開発の初心者です。私はDjangoで私のページを改ページしたい。私はユーザーがドロップダウンリストを作成して、表示する表示項目を選択します。例:ドロップダウンリストで「10」を選択して「送信」ボタンをクリックすると、10個のアイテムが表示されますが、「次へ」または「前の」ボタンをクリックすると、デフォルトで25個のアイテムが表示されます。ドロップダウンリストに表示されます。今、「次へ」または「前へ」をクリックすると、ドロップダウンリストで選択したように10個のアイテムが表示されます。どうやってやるの。これは私のコードPythonとDjangoのページ設定
view.pyです:
def listing(request):
people = Person.objects.all()
if "dropdown" in request.POST:
per_page = request.POST["dropdown"]
else: per_page = 25
paginator = Paginator(people, per_page)
page = request.GET.get('page')
try:
people = paginator.page(page)
except PageNotAnInteger:
people = paginator.page(1)
except EmptyPage:
people = paginator.page(paginator.num_pages)
return render_to_response('crud\index.html', RequestContext(request, {'people': people, 'per_page': per_page}))
し、POSTパラメータを持っていないので、これはコードファイルのindex.html
{% if people %}
<form method="post">
{% csrf_token %}
<table>
<p>
<select name="dropdown">
<option value="5">5</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
</select>
</p>
<input type="submit" value="Submit"/>
<tr>
<th>Name</th>
<th>Phone</th>
<th>Age</th>
</tr>
{% for person in people %}
<tr>
<td>{{ person.name }}</td>
<td>{{ person.phone }}</td>
<td>{{ person.age }}</td>
<td><a href="delete/{{ person.id }}">Delete</a></td>
<td><a href="edit/{{ person.id }}">Edit</a></td>
</tr>
{% endfor %}
<div class="pagination">
<span class="step-links">
{% if people.has_previous %}
<a href="?page={{ people.previous_page_number }}">previous</a>
{% endif %}
<span class="current">
Page {{ people.number }} of {{ people.paginator.num_pages }}.
</span>
{% if people.has_next %}
<a href="?page={{ people.next_page_number }}">next</a>
{% endif %}
</span>
</div>
</table>
</form>
{% else %}
<p>No people in the database</p>
{% endif %}
{% if per_page %}
<p>You picked {{ per_page }}.</p>
{% endif %}