Пагинация Django One Image - PullRequest
       1

Пагинация Django One Image

0 голосов
/ 11 августа 2010

Я хотел бы иметь «нумерацию страниц», где у меня было бы одно изображение на страницу. Мой текущий код вставлен ниже. К сожалению, теперь я получаю ВСЕ изображения на КАЖДОЙ нумерации страниц. Это уже шаг в правильном направлении, но не совсем то, что я хочу.

Как я могу иметь только одно изображение на странице, например, изображения 1 моего os.listdir и ниже, что ссылка на следующее изображение в этом os.listdir?

views.py

def p_main_page(request):
    stimuli_list=os.listdir('/Users/Me/Images')
    p = Paginator(stimuli_list, 1)
    urllist = ['/site_media/Images/%s' % url for url in stimuli_list]
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    try:
        stimuli = p.page(page)
    except (EmptyPage, InvalidPage):
        stimuli = p.page(p.num_pages)
    return render_to_response('stimulilist.html', {"stimuli": stimuli,
                                                "urllist": urllist})

шаблон:

<html>

<head>
<title> Stimuli </title>
</head>

<body>

<p>
{% for url in urllist %}

<img src='{{ url }}' />

{% endfor %}

</p>

<div class="pagination">
    <span class="step-links">
        {% if stimuli.has_previous %}
            <a href="?page={{ stimuli.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ stimuli.number }} of {{ stimuli.paginator.num_pages }}.
        </span>

        {% if stimuli.has_next %}
            <a href="?page={{ stimuli.next_page_number }}">next</a>
        {% endif %}
    </span>
</div>

<body>
</html>

1 Ответ

0 голосов
/ 11 августа 2010

Вы определяете urllist слишком рано в своем коде представления, прежде чем вы ограничите список URL, которые вы просматриваете в шаблоне. Попробуйте:

def p_main_page(request):
    stimuli_list=os.listdir('/Users/Me/Images')
    p = Paginator(stimuli_list, 1)
    try:
        page = int(request.GET.get('page', '1'))
    except ValueError:
        page = 1
    try:
        stimuli = p.page(page)
    except (EmptyPage, InvalidPage):
        stimuli = p.page(p.num_pages)
    urllist = ['/site_media/Images/%s' % url for url in stimuli.object_list]
    return render_to_response('stimulilist.html', {"stimuli": stimuli,
                                                "urllist": urllist})

Кстати, вам может быть лучше использовать {{ MEDIA_URL }} в своем шаблоне, а не жестко задавать путь к media сайта в ваших представлениях, и я бы, вероятно, вообще не генерировал urllist в представлении, и просто зациклите stimular.object_list в шаблоне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...