0

ページごとに5つのステータスを表示するために、ページをページ分割しようとしています。これらのコードを入力した後、ページ付けに失敗します。以下は、私のdjangoアプリのステータスのページ付けと更新のコードです。

ビュー(views.pyファイル):

def qask(request):
    extra_data_context={}
    #if there's nothing in the field do nothing.
    if request. method=="POST":
        form =AskForm(request.POST)
        if form.is_valid():
            data=form.cleaned_data
            newask=Ask(user= request.user,status=data['status'],pub_date=datetime.datetime.now())
            newask.save()
        extra_data_context.update({'AskForm':form})
    else:
        form = AskForm()
        extra_data_context.update({'AskForm':form})
    extra_data_context.update({'Asks':Ask.objects.filter(user=request.user)})

    plan=Ask.objects.all()
    paginator=Paginator(plan, 5)

    try:
        page=int(request.GET.get('page','1'))
    except ValueError:
        page=1

    try:
        fp=paginator.page(page)
    except (EmptyPage, InvalidPage):
        fp=paginator.page(paginator.num_pages)
    return render_to_response  ('quik_ask.html',extra_data_context,context_instance=RequestContext(request))
    

テンプレート(htmlファイル):

{% block content %}

{% for Ask in Asks %}
<tr>
    <p>  {{Ask.user}} </p> </strong>
    <p>{{Ask.status}}</p>
    <p> {{Ask.pub_date|timesince }} ago </p> 

</tr>
{% endfor %}

<div class="pagination">
    <span class="step-links">
        {% if Asks.has_previous %}
        <a href="?page={{ Asks.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ Asks.number }} of {{ Asks.paginator.num_pages }}.
        </span>

        {% if Asks.has_next %}
        <a href="?page={{ Asks.next_page_number }}">next</a>
        {% endif %}
    </span>
</div>

{% endblock %}
4

1 に答える 1

0

ページデータはfp変数にありますが、テンプレートに送信されることはありません。代わりに、からページデータを取得しようとしてAsksいますが、コード内のpaginatorとは何の関係もありません。何をページ付けしようとしているのかわかりませんが、フィルタリングされたデータをページ分割する場合は、次のようになります。

plan = Ask.objects.filter(user=request.user)
paginator=Paginator(plan, 5)
###...get you page number
try:
    asks = paginator.page(page)
except (EmptyPage, InvalidPage):
    asks = paginator.page(paginator.num_pages)
extra_data_context.update({'Asks': asks})
于 2012-05-06T23:24:47.650 に答える