2017-04-16 4 views
0

DjangoではPaginationを使用していますが、AJAXを使用しているため、ビューからAJAX呼び出しにすべての変数値を送信する必要があります。しかし、現在のページには変数がありません。私は公式の文書を見た。どのようにしてこのデータをview.pyで既に計算したものを送るのですか?Django Pagination現在のページ:View.py

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

Following this example

答えて

0

ページネーション/ AJAX /ジャンゴテンプレートタグを行う唯一の賢明な方法でリンク参照、Djangoのビューでテーブル全体+現在のページデータ+テーブル・ナビゲーションなどを生成することであろう。私。テーブルのすべての変数を含むページからテーブルのビューに移動します。

おそらくより良い解決策は、自分自身のjavascriptテーブルコンポーネントを見つけるとDjangoそれにデータを提供することです...

0

代わりに、2つの異なるビューを作成するには、GETを追加することによって、同じビューから、ページ分割コンテンツを配信することができますページ番号を確認し、ajaxリクエストを同じビューに送信するために、URLにパラメータを追加します。このようにして、同じコンテンツに対して2つではなく1つのビューを管理する方が簡単になります。また、特定のコンテンツを生成するだけでなく、ajaxを使用している場合は、1つのビューで関連コンテンツのみを配信できるように、ビューを簡単に分割できます。例えば

、あなたのビューのURLが\url-to-somepage ある場合はtemplate.htmlを言う、あなたのテンプレートファイルに次に\url-to-somepage?page=2

にAJAXリクエストを送信することができ、include別のテンプレートには、ページ分割されますコンテンツのため__sub_template.htmlを言います。同様に、あなたのビューで次に

<div> 
    <!-- 
     rest of the page 
    --> 
    {% include 'templates\__sub_template.html' %} 
</div> 

.def your_view(request): 
    """ 
    Your code here 
    """ 
    paginator = Paginator(contacts, number) 
    page = request.GET.get('page') 
    try: 
     result_list = paginator.page(page) 
    except PageNotAnInteger: 
     result_list = paginator.page(1) 
    except EmptyPage: 
     result_list = [] 
    if page: 
     return render(request, '__sub_template.html', {'contacts': result_list}) 
    else: 
     return render(request, 'template.html', {'contacts': result_list}) 
0
+0

はそれのいずれかの作業例はありますか?私は混乱しているように私はそれが私の場合にどのように動作するか知っていませんでした。 – Tousif

+0

ドキュメント内部の例が動作します。基本的には2つのテンプレートが必要です。テンプレートを含めたり、スクリプトなどを使用したりする必要があります。 –

関連する問題