ジャンゴのようなページャのポイントへ

 このプロジェクトは、javascriptを書かれた完全な160本のラインを形成し、書き込み後の判定処理のすべての種類は、長くて退屈であると言うことができるが、それでもジャンプテーブルによるデータを取得した後に選択する解決できないHTMLページとして始まりましたページの更新処理後(質問)

javascipt + AJAXジャンゴ後の代わりに、ページング+提出し、問題解決

以下は、関連するコードDjangoのページ付けプロセスであります

Djangoのバックエンドのコード:

allprojects = ' 所有项目' 
サーバー = ' 0.0.0.0 ' 

DEF get_data_by_project(モデル、ユーザ名、プロジェクト):
  もしプロジェクト== allprojects:
    データ = model.objects.filter(俳優= ユーザー名)
  
    データ = model.objects.filter (Q(プロジェクト=プロジェクト)&Q(俳優= ユーザー名))
  戻りデータならばデータ他はなし

デフ(モデル、ユーザ名、サーバー)get_data_or_createません:
  データ = model.objects.filter(俳優= ユーザー名)
  空为データ如果を、就新增一条数据
  IF  ないデータ:
    model.objects.get_or_create(yoursqlinfo、サーバ = サーバー)
  データ = model.objects.filter(俳優= ユーザー名)
  を返すデータ

(LOGIN_URL @login_required = ' /ログイン/ ' DEF MyHTML(要求):
  ユーザ名 =リクエスト.session.get(ユーザ)
  IF `request.GET``:
    遠位対応するエントリを選択し、データベースからフェッチされ、対応するデータ 
    ・プロジェクト= request.GET.get(chooseproject 
    データ =get_data_by_project(のTestTable、ユーザ名、プロジェクト)
  :
    ページへの初めて 
    のプロジェクト= allprojects 
    データ = get_or_create_data(のTestTable、ユーザ名、サーバ)

  Djangoのページャ、10ページのデータ 
  ページネータ=ページネータ(データ、10 
  ページ = request.GET.get(' ページ'、1。 
  currentPageに = INT(ページ)

  の試行
    データ = paginator.page(ページ)
  を除く:PageNotAnInteger 
    データ = paginator.page(1。 )
  を除くEmptyPage:
    データ= paginator.page(paginator.num_pages)
  リターンレンダリング(要求、' myhtml.html '、{ ' ユーザ名':ユーザ名、' データ':データ、' プロジェクト':プロジェクト})

 

htmlページのコード

<! - 必要のchooseproject選択されたプリセット値、ヘッダの処理- > 
< スクリプトタイプ= "テキスト/ JavaScriptを" > 
window.onload =  関数(){ 
  $(' #chooseproject ' ).val(' {プロジェクト}} { " ); 
} 
</ スクリプト> 


<! - 選択した項目- > 
< 形成方法を= "GET" ID = "chooseform" > 
  < SELECT クラスは= "カスタム-SELECT" ID = "chooseproject"名前=「chooseproject」スタイル= "幅:120ピクセル;フロート:左;パディング:0 15ピクセルと、高さ:30px" > 
  < オプション>所有项目</ オプション> 
  < オプション>项目一</ オプション> 
  < オプション>项目二</ オプション> 
  </ 選択> 
</ フォーム> 


<! - 分页器- > 
< divのスタイル= "フロート:右;マージン右:150ピクセル;" > 
  {%ない場合data.has_previous%} 
  < スパン> < A >スパン> &NBSP; | 
  {%他%} 
  < スパン> < HREF = "chooseproject = {{プロジェクト}}&ページ= 1?" >最初</ A > </ スパン> &NBSP。| 
  {%のENDIFの%} 
  {%ならdata.has_previous%} < スパン> < HREF = "?chooseproject = {{プロジェクト}}&ページ= {{data.previous_page_number}}" ></ A > </ スパン> &NBSP ; | 
  {%他%} < スパン>
  
  > &NBSP; | 
  {%ENDIF%} 
  {%ならdata.has_next%} 
  < スパンID = "NEXTPAGE" > < HREF = "?chooseproject = {{プロジェクト}}&ページ= {{data.next_page_number}}" >次に</ A > </ スパン> &NBSP; | 
  {%他%} < スパン> < A >次に</ A > </ スパン> &NBSP。| 
  {%ENDIF%} 
  {%ない場合data.has_next%} < スパン> < A >
  
  > </ スパン> &NBSP; | 
  {%他%} 
  < スパン> < のhref = "chooseproject = {{プロジェクト}}&ページ= {{data.paginator.num_pages}}?" >最後の</ A > </ スパン> &NBSP; | 
  {%ENDIF%} &NBSP。ページ&NBSP; < スパン> < A > {{data.number}} </ A > </ スパン> / < スパン> < A > {{data.paginator。
  スパン> 
</ divの> 

<! - プロセスに送信された値選択chooseproject、体を提出してください- > 
< スクリプトタイプ= "テキスト/ JavaScriptを" > 
  $(' #chooseproject ' ).changeを(関数(){ 
    $ (' #chooseform ' ).submit(); 
  }); 
</ スクリプト>

 

< HREF = "?chooseproject = {{プロジェクト}}&ページ= XXX" >

彼は、取得するには、対応するリクエストを送信するクリックを表し、

上記、ページャはジャンゴであります

 

おすすめ

転載: www.cnblogs.com/badluckforyou/p/11580333.html