我想要一个“分页”,每页我会有一个图像。我目前的代码粘贴在下面。 Unfortunatley现在我在每个分页上获得所有图像。这已经朝着正确的方向迈出了一步,但并不是我想要的。
我怎样才能每页只有一个图像,例如我的os.listdir的图像1以及下面那个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>
答案 0 :(得分:0)
在限制您在模板中循环的网址列表之前,您在视图代码中过早地定义了urllist
。尝试:
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 }}
,而不是在视图中对网站媒体的路径进行硬编码,我可能不会在视图中生成urllist
完全没有,只是在模板中循环stimular.object_list
。