2017-02-21 8 views
0

私は2つのdjangoモデルCalculationsCustomersを持っています。計算モデルにはForeignKeyというユーザーが含まれていますが、ユーザーは空でもかまいません。次のように外部キー付きモデルのDjangoページ設定

図である。

calculation_data
def archive(request):   
    calculations = Calculations.objects.filter(user=request.user) 
    calculation_data = [] 
    for calculation in calculations: 
     customer_fullname, car_chassis, car_registration = ('', '', '') 
     if calculation.customer_id is not None: 
      customer = Customer.objects.get(id=calculation.customer_id) 
      customer_fullname = '{} {}'.format(customer.firstname, customer.lastname) 
      car_chassis = customer.chassis 
      car_registration = customer.registration 

     calculation_data.append({ 
      'calculation': calculation, 
      'price': price_incl_vat(calculation.purchase_price), 
      'customer_fullname': customer_fullname, 
      'car_chassis': car_chassis, 
      'car_registration': car_registration, 
     }) 
    context = {'calculation_data': calculation_data} 
    return render(request, 'master/archive.html', context) 

そしてarchive.html Iループで次のように:

{% for calculation in calculation_data %} 
..... 
..... 
{% endif %} 

、すべてが正常に動作します。

ページネーションを実装します。

ドキュメントによれば、として行うことができます。

calculations = Calculations.objects.all() 
paginator = Paginator(calculations, 25) 

しかし、どのように私は私のcalculation_dataにページネーションを実装することができますか?テンプレートにループするすべてのデータが格納されているためです。

ここで、ページネーションを達成するためのクエリを書く良い方法がありますか?

ありがとうございます。あなたはあなたがcalculation_dataと同じことを行うことができますページネータするために、リストを渡すことができdocsによると

答えて

1

>>> from django.core.paginator import Paginator 
>>> objects = ['john', 'paul', 'george', 'ringo'] 
>>> p = Paginator(objects, 2) 
関連する問題