50341


djangoでページネーションをするときmethodがpostの場合、2ページ目以降に行くときのmethodがgetなため検索結果が無効になってしまいます。  
どのようにすればよいでしょか?  
以下が自分が書いたコードです。

[code]

        page = Paginator(hoge_list,10)
        params = {
            'form':form,
            'hoge_list_counter':page.get_page(num),
        }
        return render(request, 'hogehoge.html', params)
    
[/code]


CC BY-SA 4.0
2018-11-09T08:58:43.850
50120
2018-11-15T02:26:45.803
29853
question
python django
検索結果のページネーションについて


`hoge_list` が検索条件のセットされたQueryだとして、Sessionなどに埋め込むのが良いかと思います。  
下記のは例で、バリデーション等必要かと思いますが参考までにどうぞ。

[code]

    def hoge_index(request):
        # Sessionから条件取得
        params = request.session.get('params')
        if not params:
            # SessionになければPOSTから取得
            params = {
                'param1': request.POST.get('param1'),
                'param2': request.POST.get('param2'),
            }
    
        # Sessionに保存
        request.session['params'] = params
    
        # ページ
        num = request.GET.get('page')
    
        hoge_list = HogeModel.object.filter(params)
        page = Paginator(hoge_list, 10)
        params = {
            'form': form,
            'hoge_list_counter': page.get_page(num),
        }
        return render(request, 'hogehoge.html', params)
    
[/code]


CC BY-SA 4.0
2018-11-15T02:26:45.803
50341
2018-11-15T02:26:45.803
30952
50120
answer