javascript - Django 按钮在点击时加载更多帖子
问题描述
我想在使用ajax 的按钮单击时实现在新闻中加载以下帖子。到目前为止,事实证明在按下时会加载相同数量的帖子。那些。我立即看到 5,然后我又按下了一个 5。依此类推。我想确保在前 5 个帖子之后,它们的加载量不是 5 个,而是 8 个。但这根本行不通。而且我不知道该往哪个方向去获得它。
视图.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")
]
脚本.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()
})
}
我需要解决什么问题才能按上述方式加载帖子?
解决方案
推荐阅读
- javascript - 如何在 JavaScript 中做基于斜率的物理
- python - 如何使用一行选择一个数组中没有出现在另一个数组中的最小值?
- typescript - Object.defineProperty(Array.prototype .. TypeScript 中的问题
- apache-spark - Datalab BigQuery 数据到 Dataproc Hadoop 字数
- mysql - brew mysql 和 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- html - div/spans 在隐式换行后消耗最大宽度
- nuxt.js - Nuxt js 身份验证不适用于@nuxt/proxy
- php - 无法断言两个数组相同
- kubernetes - 将 Google Cloud 中的外部 IP 与 Kubernetes 服务一起使用以将其公开到互联网
- java - 有没有办法防止 Spring 中的配置依赖注入?