[英]Django pagination on a model with foreignkey
我有兩個django模型Calculations
和Customers
。 計算模型的用戶為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.