Группировать набор запросов по номерам в шаблоне

#django

#django

Вопрос:

У меня проблема, когда я должен отображать все объекты из модели в представлении. Однако у меня есть место для одновременного отображения только 3. Итак, я думал об использовании скользящей рамки (карусель начальной загрузки) для отображения более 3.

Я пришел к 2 решениям.

1: Я создаю представление, вызываемое через ajax, которое загружает последующие объекты, используя a start_id , который отображает 3 объекта из модели, начиная с первичного ключа объекта as start_id . Что-то в этом роде.

     def dynamic_banners(request):
        start = request.GET['start_id']
        banner1 = Sample.objects.filter(id__exact=start)
        banner2 = Sample.objects.filter(id__exact=start 1)
        banner3 = Sample.objects.filter(id__exact=start 2)

        return render_to_response('template.html',{'banner1':banner1, 'banner2':banner2, 'banner3':banner3}, RequestContext(request))
  

Но я не уверен, является ли это элегантным или, если на то пошло, правильным решением.

2. Другим решением является одновременная отправка всех объектов в представление, а затем их разделение в шаблоне. Проблема здесь в том, что я не могу найти способ сделать это.

Я надеюсь, что проблема кажется последовательной. В противном случае вы всегда можете взглянуть на приложение здесь и посмотреть «Рекомендуемые поставщики услуг», где в настоящее время я могу отобразить только 3, но мне нужно отобразить все в виде скользящей рамки.

Ответ №1:

 def dynamic_banners(request):
    start = request.GET['start_id']
    banners = Sample.objects.filter(id__gte=start).order_by('id')[:3]
    return render_to_response('template.html',{'banners':banners}, RequestContext(request))