2017-07-02 5 views
0

StackOverflowのを確認し、私は多くのページのショーケースを作りたいです。多くのページのショーケース

最初のページでは、最初の25個のアイテム、2番目のアイテム、26番目から50番目のようになります。

しかし、どうすればいいですか?ここ

はurls.pyです:

products = Product.objects.order_by('-date') 
urlpatterns = [ 
url(r' regexp ', ListView.as_view(queryset=products, template_name='shop/shop.html')),] 

それがなければならない。このような要求asnwerする: mysite.com/shop/2

をしても製品[25 *(REQUEST_NUMBER-1)を表示します:25ページの* REQUEST_NUMBER]項目事前に

ありがとう!

+0

からListView継承は、あなたがhttps://docs.djangoproject.com/en/1.11/topics/pagination/#using-paginator-in-a-viewを見てなかったので、これは動作します? –

+0

@Adrienうわー、私はやった、 'page = request.GET.get( 'page')' – Michael

+0

@AdrienMatissartはおそらく 'request.GET.get( 'shop' + request)'を変更するだろうか?私のリンクは次のようになります。site.com/shop/2別の愚かな質問には申し訳ありません – Michael

答えて

1

ListViewは、paginate_byパラメータを定義すると、ページ設定を処理できます。その後

class ProductsListView(ListView): 
    model = Product 
    ordering = '-date' 
    paginate_by = 25 
    template_name = 'shop/shop.html' 

、あなたが必要とするすべてはあなたのURLパターンにpageパラメータを定義することです:それから継承する新しいクラス内のすべてのパラメータを定義してみましょう。 技術的には、MultipleObjectMixin

urlpatterns = [ 
    url(r'^shop/(?P<page>[0-9]+)/$', ProductListView.as_view()) 
] 
+0

が、私は私のデータを処理したい場合、私は何をすべきかを持っているのですか?私は私はそれにそれを適用する方法、[1、2、3、4、5、6]に[1、2、3、4]、[5、6、なし、なし]を変換する機能がありますか? – Michael

+0

元の質問との関連性は不明です。しかし、あなたはテンプレートでレンダリングされるオブジェクトのリストを構築する独自の方法を定義するListView' 'で' get_queryset'メソッドをオーバーライドすることができます。 –

+0

もう一度ありがとう、あなたは最高です! – Michael

関連する問題