簡體   English   中英

Django上下文處理器以顯示圖像

[英]Django context processor to show images

如何為我的images_people列表中的每個圖像添加標題?

可以在級別實踐意義上改進context_processor嗎?

我想在網頁中顯示隨機圖像,然后制作一個上下文處理器

內容:

(以前在我的context_processors設置中添加了...):

# -*- coding: utf-8 -*-

from random import choice

images_people = ['https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia2.jpg','2',
          'https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia3.jpg',
          'https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia4.jpg',
          'https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia-children.jpg',
          'https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/ElZocalo.jpg',
          'https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/israel.jpg',
          ]

def images(request):
    return {'images': choice(images_people)}

在我的模板中,我正在調用此context_processor:

<div class="portrait">
    <div class="img-cont" style="background: url('{{ images  }}') no-repeat center; background-size:cover;">
    </div>
         # Add caption to image
         <!-- <span></span> -->
</div>

您可以將上下文處理器中的列表更改為2元組(網址,標題)的列表。

images_people = [
    ('https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia2.jpg', 'Caption 1'), 
    ('https://s3-sa-east-1.amazonaws.com/ihost-project/assets/img/bolivia3.jpg', 'Caption 2),
    ...
]

def images(request):
    # n.b changed from `images` to `image` since it's a single image
    return {'image': choice(images_people)}

然后在您的模板中, {{ images.0 }}將成為URL, {{ images.1 }}將成為標題。

如果您不喜歡按索引訪問元組,則可以查看NamedTuple或創建一個類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM