Предположим, у меня есть 100
фильмы. с помощью цикла for. Мы можем напечатать все фильмы. Как ниже.
В шаблоне Django
{% for movie in movies.object_list %}
{% endfor %}
Но что мне делать, если мне нужно распечатать только 1
25
50
75
100
фильм из списка? спасибо
ОБНОВЛЕНИЕ: Я написал это. Есть ли другая альтернатива?
{% for movie in movies.object_list %}
{% if forloop.counter == 25 %}
{{ movie }}
{% endif %}
{% if forloop.counter == 50 %}
{{ movie }}
{% endif %}
{% if forloop.counter == 75 %}
{{ movie }}
{% endif %}
{% if forloop.counter == 100 %}
{{ movie }}
{% endif %}
{% endfor %}
View
def movie_sort(request):
categories = Category.objects.all()
language_name = Category.objects.get(id=request.GET.get('language'))
movie_l = Movie.objects.filter(language=request.GET.get('language'),is_active=True)
# Displaying first row
for i, v in enumerate(movie_l):
if i == 0:
first_row_f = v
if i == 24:
first_row_l = v
if i == 25:
second_row_f = v
if i == 49:
second_row_l = v
if i == 50:
third_row_f = v
if i == 74:
third_row_l = v
if i == 75:
fourth_row_f = v
if i == 99:
fourth_row_l = v
################
paginator = Paginator(movie_l, 100) # Show 25 contacts per page
page = request.GET.get('page',1)
try:
movies = paginator.page(page)
except PageNotAnInteger:
movies = paginator.page(1)
except EmptyPage:
movies = paginator.page(paginator.num_pages)
return render_to_response('movie/alphabetic_list.html',locals(),
context_instance=RequestContext(request))
ОБНОВЛЕНИЕ2: Я написал следующую функцию в view
. Единственная проблема с этим, если пользователь нажимает на следующую страницу (paginator), где отображаются предыдущие данные. Значит эти данные не меняются. любой совет?
for i, v in enumerate(movie):
if i == 0:
first_row_f = v
if i == 24:
first_row_l = v
if i == 25:
second_row_f = v
if i == 49:
second_row_l = v
if i == 50:
third_row_f = v
if i == 74:
third_row_l = v
if i == 75:
fourth_row_f = v
if i == 99:
fourth_row_l = v