现在我正在使用结算应用。我有一个自定义设计的结算页面。该页面可以包含15个产品。如果我打印超过15种产品,那将会覆盖到他们的页脚。所以,如果超过15个产品,那么每15个项目创建一个新页面。我怎样才能做到这一点。
我的观点
@login_required
def print_sale(request,uuid):
current_sale = Sales.objects.filter(uuid=uuid,deleted=0,shop_id = get_current_shop_id(request)).annotate(total=Sum('sale_products__subtotal'),total_received=Sum('sale_payment__amount'))
return render_to_response('sales/print.html',{'current_sale':current_sale},context_instance=RequestContext(request))
我的模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>print</title>
{% load static %}
<link rel="stylesheet" href="{% static 'css/print.css' %}" />
<script type="text/javascript" src="{% static 'js/print.js' %}"></script>
</head>
<body>
<section class="wrapper">
{%if current_sale %}
{% for sale in current_sale %}
<section id="top">
<section id="bill_details" class="style1">
<h2>Bill To :</h2>
<p>
{{ sale.customer.name }} , {{ sale.customer.email }} , {{sale.customer.mobile}}
</p>
<p class="address">
{{ sale.customer.address }}
</p>
</section>
<div class="right">
<p>
<b>Date <small>:</small></b>{{ sale.sale_date }}
</p>
<p>
<b>Invoice No<small>:</small></b> #{{ sale.id }}
</p>
</div>
<br class="clear" />
</section>
<table>
<tr>
<th>Code</th>
<th>Name</th>
</tr>
{% for product in sale.sale_products_set.all %}
<tr class="parent">
<td>{{ product.product.code }}</td>
<td>{{ product.product.name }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}
{% endif %}
</section>
</body>
</html>
答案 0 :(得分:1)
如果我理解正确,您可以使用https://docs.djangoproject.com/en/dev/topics/pagination/。
答案 1 :(得分:1)
Django为pagination
提供支持但是,最简单的方法是使用django-pagination应用。
设置完成后,您需要在模板中包含以下内容:
{# At the top of the template #}
{% load pagination_tags %}
{% autopaginate sale.sale_products_set.all 15 %}
{# Your normal template code here #}
{# At the bottom, to show the pagination buttons #}
{% paginate %}
答案 2 :(得分:0)
如果您想要更好地实现更好的分页效果,可以查看django endless pagination Django Endless Pagination可用于提供Twitter风格或Digg风格的分页,可选的Ajax支持以及其他功能,如多重或懒惰分页。