Я недавно начал использовать встроенные общие представления django (Create, Update и т. Д.), Поэтому я обновляю большинство моих старых представлений, чтобы использовать их, одним из них является ListView с разбиением на страницы.Так что теперь, это работает правильно, когда я получаю эту страницу, он отображает объекты, как указано, и нумерация страниц работает нормально.Но я хочу использовать AJAX для разбивки на страницы, так что я просто нажимаю кнопку «Еще», и она получает объекты следующей страницы через ajax и добавляется в конец.Итак, я изменил некоторые общие представления прежде, чтобы включить AJAX, например:
class Delete(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
login_url = LOGIN_URL
model = Items
success_url = reverse_lazy('web:member-area')
def test_func(self):
return not self.request.user.is_superuser and self.get_object().created_by == self.request.user
def delete(self, request, *args, **kwargs):
response = super().delete(request)
if self.request.is_ajax():
return JsonResponse({'success': 1}, status=200)
else:
return response
В приведенном выше фрагменте вы можете видеть, что я включил часть, где он возвращает что-то другое, если запрос AJAX
Текущее представление, над которым я работаю, выглядит следующим образом:
class Items(ListView):
model = Items
paginate_by = 5
context_object_name = 'items'
template_name = 'web/items/index.html'
, который прекрасно работает на обычных GET-запросах, поэтому проблема в том, что я не знаю, какой super()
метод (ы) переопределить и вернутьдругой ответ, если его AJAX на этом ListView