Кнопка "Загрузить больше" в "Списке товаров категории" не сортирует товары по категориям
Я сделал кнопку "Load More" для "Product list" с помощью учебника и пытаюсь сделать это для "Category product list", но она не работает нормально.
Мои файлы:
Views.py
def product_list(request):
total_data = Product.objects.count()
data = Product.objects.all().order_by('-id')[:1]
cats = Product.objects.distinct().values('category__title', 'category__id')
return render(request, 'product_list.html',
{
'data': data,
'cats': cats,
'total_data': total_data,
})
def category_product_list(request, cat_id):
category = Category.objects.get(id=cat_id)
total_data = Product.objects.filter(category=category).count()
data = Product.objects.filter(category=category).order_by('-id')[:1]
return render(request, 'category_product_list.html', {'data': data, 'total_data': total_data})
def load_more_data(request):
offset = int(request.GET['offset'])
limit = int(request.GET['limit'])
data = Product.objects.all().order_by('-id')[offset:offset+limit]
t = render_to_string('ajax/product-list.html', {'data': data})
return JsonResponse({'data': t})
def load_more_dataCat(request):
offset = int(request.GET['offset'])
limit = int(request.GET['limit'])
data = Product.objects.filter(category=True).order_by('-id')[offset:offset+limit]
t = render_to_string('ajax/category_product_list.html', {'data': data})
return JsonResponse({'data': t})
custom.js
$(document).ready(function(){
$("#loadMore").on('click', function(){
var _currentProducts = $(".product-box").length;
var _limit = $(this).attr('data-limit');
var _total = $(this).attr('data-total');
console.log(_total)
// Start Ajax
$.ajax({
url:'/load-more-data',
data:{
limit: _limit,
offset: _currentProducts
},
dataType:'json',
beforeSend:function(){
$("#loadMore").attr('disabled',true);
$(".load-more-icon").addClass('fa-spin');
},
success:function(res){
$("#filteredProducts").append(res.data);
$("#loadMore").attr('disabled',false);
$(".load-more-icon").removeClass('fa-spin');
var _totalShowing = $(".product-box").length;
if(_totalShowing==_total){
$("#loadMore").remove();
}
}
});
// End
});
});
$(document).ready(function() {
$("#loadMoreCat").on('click', function () {
var _currentProducts = $(".product-box").length;
var _limit = $(this).attr('data-limit');
var _total = $(this).attr('data-total');
console.log(_total)
// Start Ajax
$.ajax({
url:'/load-more-dataCat',
data:{
limit: _limit,
offset: _currentProducts
},
dataType:'json',
beforeSend:function(){
$("#loadMoreCat").attr('disabled',true);
$(".load-more-icon").addClass('fa-spin');
},
success:function(res){
$("#categoryProducts").append(res.data);
$("#loadMoreCat").attr('disabled',false);
$(".load-more-icon").removeClass('fa-spin');
var _totalShowing = $(".product-box").length;
if(_totalShowing==_total){
$("#loadMoreCat").remove();
}
}
});
// End
});
});
Когда я использую кнопку на странице "Список продуктов", она показывает больше продуктов из всех продуктов, но на странице "Список продуктов категории" она загружает продукт из другой категории, и тот же продукт в любом списке категории.
Я попробовал изменить views.py. Я пробовал :
data = Product.objects.filter(category=True).order_by('-id')[offset:offset+limit] data = Product.objects.filter(category=category).order_by('-id')[offset:offset+limit]
и различные комбинации, но это только меняет проблему. Но, может быть, проблема в другом.