я хочу, чтобы изображения появлялись по одному на странице, как в «template/1» показывает изображение 1 и так далее.
я получил разбивку на страницы из бутстрапа, но не мог понять, как связать изображения в моем шаблоне.
у меня уже есть статическая настройка, и большая часть моего веб-сайта готова, но у меня нет никакого соответствующего кода для отображения, кроме этого списка, который я пробовал.
def imageview(request):
context_dict = {}
files = os.listdir(os.path.join(os.path.join(BASE_DIR, 'static'), "app_name/images/"))
context_dict['files'] = files
return render(request, 'images.html', context=context_dict)
пожалуйста, поделитесь шаблоном images.html
шаблон image.hml пуст, потому что я не знал, что туда поместить
было бы хорошо сохранить имена изображений в таблице базы данных, затем создать модель для этой таблицы и использовать ее с django.core.paginator
. вы можете использовать paginator
без настройки db/model. если вы хотите, я могу поделиться примером.
Спасибо "Чандан" пагинация сработала, вот код:
вид.py:
def imageview(request):
image_list = os.listdir('static/app_name/images/')
p = Paginator(image_list, 1)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
page = 1
try:
image = p.page(page)
except (EmptyPage, InvalidPage):
image = p.page(p.num_pages)
urllist = ['/static/app_name/images/%s' % url for url in image.object_list]
context = {"image": image,"urllist": urllist}
return render(request, 'images.html', context)
изображения.html
{% for url in urllist %}
<img src='{{ url }}' />
{% endfor %}
<nav aria-label = "Page navigation example">
<ul class = "pagination">
<li class = "page-item">
{% if image.has_previous %}
<a class = "page-link" href = "?page = {{ image.previous_page_number }}" aria-label = "Previous">
<span aria-hidden = "true">«</span>
{% endif %}
</a>
</li>
Page {{ image.number }} of {{ image.paginator.num_pages }}
<li class = "page-item"><a class = "page-link" href = "#">1</a></li>
<li class = "page-item">
{% if image.has_next %}
<a class = "page-link" href = "?page = {{ image.next_page_number }}" aria-label = "Next">
<span aria-hidden = "true">»</span>
{% endif %}
</a>
</li>
Отлично, я рад, что смог вам помочь.
было бы полезно, если бы вы могли проголосовать за полезный комментарий, сделанный кем-либо, если вы можете поблагодарить вас
используйте блок кода для раздела кода с 4 пробелами для форматирования, это улучшит ваш question/answer
и будет полезно для других, кто увидит и прочитает вас question/answer
.
для справки я добавил один блок кода в ваш ответ.
вы можете использовать блок кода для раздела кода в своем вопросе / ответе, чтобы сделать его хорошим и легко читаемым