#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))