Я бы сделал следующим образом
1) 1-ый вариант
во вьюхах
from django.core import serializers
from .models import MyModel
def my_view(request):
if request.is_ajax():
x = request.GET.get('value', 5)
data = serializers.serialize('json', MyModel.objects.all()[:x] ) #тут по вкусу, можно все объекты, можно частями.
return HttpResponse(data, content_type='application/json')
else:
return render(request, 'template.html')
2) 2-ой вариант использовать Django-Rest-Framework
И в шаблонах уже jQuery-Ajax, Angular и.т.п.
Но я сам ещё совсем новичок в этом деле, поэтому могу ошибаться :)
Update:
Я нашёл вот такой вариант:
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
$.ajax({
type: 'GET',
url: '{% url 'app:json_view' %}', //Ссылка на вьюху
dataType: "json",
data: {'value': 10}, //Здесь можно передать данные в GET запросе, например сколько значений получить
success: function(data) {
// Ответ приходит в переменную data. Её и рендерим на страницу
}
});
}
});