Django 按钮在点击时加载更多帖子

时间:2021-04-08 16:30:28

标签: javascript python jquery django ajax

我想使用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()
  })
}

我需要解决什么问题才能按上述方式加载帖子?

0 个答案:

没有答案
相关问题