问题:
我目前有一个模板,有多个嵌套的div,包含不同的列表项。目前,如果我单击其中一个元素上的下一个按钮,整页将重新加载现在所有元素或在下一页或上一页上。
码:
div中的主要模板代码
{% include "users/activities.html" with activities=action1 table_title='Signups' action_verb='action1' %}
{% include "users/activities.html" with activities=action2 table_title='Actions' %}
{% include "users/activities.html" with activities=action3 table_title='Actions 2'%}
分页活动模板代码:
{% if activities.has_other_pages %}
<div class="paginationWrap">
<ul class="pagination">
{% if activities.has_previous %}
<li><a href="?page={{ activities.previous_page_number }}">«</a></li>
{% else %}
<li class="disabled"><span>«</span></li>
{% endif %}
{% for i in activities.paginator.page_range %}
{% if activities.number == i %}
<li class="active"><span> {{ i }} </span></li>
{% else %}
<li><a href="?page={{ i }}">{{ i }}</a></li>
{% endif %}
{% endfor %}
{% if activities.has_next %}
<li><a href="?page={{ activities.next_page_number }}">»</a></li>
{% else %}
<li class="disabled"><span>»</span></li>
{% endif %}
</ul>
</div>
{% endif %}
目标:
能够单击一个div而不是所有div返回页面更改。
如果您不希望整个页面加载,请使用分页选项开发api,然后使用ajax请求命中它以使用ajax请求更新数据。
#python
class ActivitiesView(APIView):
def get(self, request, format=None):
activity_details = Activities.objects.filter(user=request.user) # or any other query
paginator = Paginator()
response = paginator.generate_response(activity_details, ActivitySerializer, request)
return response
#js
$.ajax({
type: "GET",
url: "{% url ur_url %}",
data: "page="+pageNum,
async: false,
dataType: 'json',
success: function(data){
el = $('#friends-data');
update_div(data.json);
}
});
您也可以查看DRF PAGINATION
查看此页面还讨论using django views