我想使用ajax实现在点击按钮时加载新闻中的以下帖子。到目前为止,事实证明按下时加载了相同数量的帖子。那些。我立即看到 5,然后我又按下了 5。依此类推。我想确保在前 5 个帖子之后,它们不是按 5 次加载,而是按 8 次加载。但这不起作用。而且我不知道该往哪个方向走。
views.py
class NewsView(ListView):
template_name="mebelain/news.html"
queryset = News.objects.all().order_by("-date_news")
class NewsJsonListView(View):
def get(self, *args, **kwargs):
upper = kwargs.get('num_news')
lower = upper - 5
all_news = list(News.objects.values()[lower:upper])
return JsonResponse({'all_news':all_news})
urs.py
urlpatterns = [
path('news', views.NewsView.as_view(),name='news'),
path('json_news/<int:num_news>/', views.NewsJsonListView.as_view(),name = "json_news")
]
script.js
let visible = 5
const hadleGetData = () => {
$.ajax({
url: `/json_news/${visible}/`,
type: 'get',
success: function(response) {
const data = response.all_news
data.map(news => {
console.log(news.id)
})
},
error: function(error) {
console.log(error)
}
})
}
hadleGetData()
window.addEventListener("load", News)
function News() {
const loadBtn = document.getElementById('load-btn')
loadBtn.addEventListener('click', () => {
visible += 5
hadleGetData()
})
}
我需要解决什么问题才能按上述方式加载帖子?