jquery - 我的 Django 项目中的 AJAX 分页指向“找不到页面”
问题描述
我的 django 应用程序有一个最喜欢的部分,其中包含一个最喜欢的列表,供用户在其中保存最喜欢的产品。现在,用户可以使用常规的 Django 分页在每页 5 个项目上浏览收藏列表。但我想要更流畅的用户体验,我想使用 AJAX 来显示内容。
视图.py:
def pagination(request):
model = SavedProduct.objects.all()
number_of_item = 5
paginatorr = Paginator(model,number_of_item)
first_page = paginatorr.page(1).object_list
page_range = paginatorr.page_range
context = {
'paginatorr':paginatorr,
'first_page':first_page,
'page_range':page_range
}
if request.method == 'POST':
page_n = request.POST.get('page_n', None)
serializer = pagination_ser(paginatorr.page(page_n).object_list, many=True)
return JsonResponse(serializer.data, safe=False)
return render(request, 'register/ajax.html',context)
网址.py:
app_name = 'register'
urlpatterns = [
path('pagination/', views.pagination, name='pagination'),
]
ajax.html:
<body>
<div id="register_list">
{% for i in first_page %}
<h2>{{i.sub_product.real_name}}</h2>
{% endfor %}
</div>
{% for i in page_range %}
<button class='fav_nav' href="{{i}}">{{i}}</button>
{% endfor %}
脚本.js:
$('.fav_nav').on('click',function(event) {
event.preventDefault();
var page_n = $(this).attr('href');
console.log(page_n)
var url = '/register/pagination/';
$.ajax({
type: "POST",
url: url,
data : {
page_n : page_n,
csrfmiddlewaretoken: '{{ csrf_token }}',
},
success: function (resp) {
$('#register_list').html('')
$.each(resp, function(i, val) {
$('#register_list').append('<h2>' + val.name + '</h2>')
});
},
error: function () {}
});
});
但是event.preventDefault()
不起作用,每当我单击分页 ling 时,我都会收到“找不到页面”错误。
解决方案
推荐阅读
- python - 在python中购买主题公园门票程序
- sql-server - 无法在sql表中插入日期
- python-3.x - 如何重启 Google App Engine 标准服务
- cudnn - 使用 .deb 格式时无法安装 cudnn
- javascript - 如何在 select 语句中使用类名和 ID?
- java - 尝试使用 Spring 编译时包不存在
- php - 运行安装部分 beanbooks 时出现 PHP/kohana 错误
- java - 通过 Twitter API 发布回复时获取无法验证 32
- ios - CORDOVA IOS - 我构建时被拒绝的错误承诺
- git - 当人们对 git 说“祖先”时,他们是什么意思?