簡體   English   中英

使用Foreignkey在模型上進行Django分頁

[英]Django pagination on a model with foreignkey

我有兩個django模型CalculationsCustomers 計算模型的用戶為ForeignKey,但用戶可以為空。

視圖如下:

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我按如下所示遍歷calculation_data

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

而且一切正常。

現在我要實現分頁。

根據文檔可以做到:

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

但是,我怎么能實現分頁我calculation_data 因為存儲了我循環通過模板的所有數據。

有沒有更好的方法編寫查詢以完成分頁?

提前致謝。

根據文檔,您可以將列表傳遞給Paginator,以便您可以對Calculation_data進行相同操作:

>>> from django.core.paginator import Paginator
>>> objects = ['john', 'paul', 'george', 'ringo']
>>> p = Paginator(objects, 2)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM