2013-09-02 1 views
0

Как визуализировать элементы в списке dd = [], возвращаемые функцией get_image в шаблоне? список содержит список файлов, возвращаемых функцией.Django Templates Iterate & render items в списке, возвращаемом функцией

Просто WUD хотел добавить index.html под project_folder/вкл/HTML, где изображения находится под & настроек, просмотров & Ссылка в project_folder

index.html

project_folder/вкл/IMG
<ul> 
{% for object in dd %} 
<li><img src="views.img_dir{{% views.img_dir.object.get_absolute_url %}}"></li> 
<li><img src="views.img_dir{{% views.img_dir.dd.get_absolute_url %}}"></li> 
{% endfor %} 
</ul> 

если я пытаюсь это:

<ul> 
{% for object in dd %} 
<li><img src="{{settings.img_dir }}object.get_absolute_url"></li> 
<li><img src="{{settings.img_dir }}{{%object%}}"></li> 
{% endfor %} 
</ul> 

Я получаю Temp lateSyntaxError Не удалось разобрать остаток: '% объект%' от '% объекта%'

views.py

SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__)) 
img_dir = os.path.join(SETTINGS_PATH, "inc/img/") 

def get_image(request): 
    for file in os.listdir(img_dir): 
     h = [] 
     h.append(file) 
     for l in h: 
      r = l.endswith('.jpg') or l.endswith('.png') or l.endswith('.gif') 
      if r == True: 
       dd = [] 
       dd.append(l) 
       return render_to_response('index.html', dd) 

url.py

urlpatterns = patterns('', 
    url(r'^$', get_image), 

настройки .py

PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 

TEMPLATE_DIRS = (
    os.path.join(PROJECT_ROOT, "inc/html"), 
) 
+0

hmm, попытался загрузить index.html, но изображения не отображаются :(любая идея? –

ответ

0

Я изменил свой шаблон с django на Jinja2: & с изменением littel в моей функции. Я смог отобразить все изображения на шаблоне.

jinja2 Шаблон

Вот функция:

SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__)) 
img_dir = os.path.join(SETTINGS_PATH, "inc/img") 

class ImageHandler(webapp2.RequestHandler): 
    def get(self): 
     images = os.listdir(img_dir) 
     template = jinja.get_template('image.html') 
     template_values = {'images': images} 
     self.response.write(template.render(template_values)) 

HTML-:

<ul> 
{% for img in images %} 

    <li><img src="/img/{{ img|e }}"></li> 

{% endfor %} 
</ul> 

Я также получить фрагмент кода для визуализации всех изображений в Django, но я изменить свою шаблонную систему.

Если кому нужно, чтобы получить его на Django вот фрагмент кода:

VIEWS.PY

def index(request): 
    """Renders the index for the site.""" 
    images = os.listdir(templates) 
    images.sort() 
    for i in xrange(len(images)): 
     name = name_for_image(images[i]) 
     images[i] = (name, images[i]) 
    return shortcuts.render_to_response('index.html', 
             {'images': images,}, 
             template.RequestContext(request)) 

index.html

{% for name, image in images %} 
<td> 
    <a href="{% url caption fn=image %}"> 
    <img src="{% url thumbnail fn=image %}"/><br/>{{ name }} 
    </a> 
</td> 
{% if forloop.counter|divisibleby:5 %}</tr><tr>{% endif %} 
{% endfor %} 

Примечание: Приведенный выше код для Django нуждается в некоторой настройке , поскольку он также полагается на другую функцию с именем def name_for_image(image):, которая отображает имена изображений с помощью img src.

1

Ваш синтаксис шаблона неверен.

Вы не можете использовать {{ %variable% }}, это либо {{ variable }} или {% function %}

<li><img src="{{settings.img_dir }}{{%object%}}"></li> 

должен быть

<li><img src="{{settings.img_dir }}{{ object }}"></li> 

Кроме того, ваш первый блок, который вы указали имеет несколько ошибок

{% for object in dd %} 
    <li><img src="views.img_dir{{% views.img_dir.object.get_absolute_url %}}"></li> 
    <li><img src="views.img_dir{{% views.img_dir.dd.get_absolute_url %}}"></li> 
{% endfor %} 
  1. {{% varible %}}
  2. Что такое views.img_dir? Вы определили его в своем views.py Я предполагаю, но он никогда не попадает в шаблон. Поэтому вы не сможете сделать views.img_dir. (Если вы не сделали какую-то супермагию, вы не показываете нас)
  3. Это приводит к тому, что views.img_dir.object не в состоянии визуализировать.
  4. И, наконец, views.img_dir.object никогда не будет работать с тех пор (если вы передали объект шаблону), потому что это строка, а строка никогда не имеет свойства object.

Так как вы можете видеть, у вас есть несколько ошибок в коде, и вы никогда не сможете визуализировать изображения с этим.

+0

попробовал, index.html загружается, но изображения не отображаются на странице. –

+0

так как я могу их визуализировать? list получает список файлов из каталога, я пытаюсь отобразить все изображения в шаблоне с помощью функции. –

+0

Вы следовали за учебником по визуализации изображений в Django, потому что, учитывая то, что вы сделали до сих пор, кажется, что это принесет пользу вам больше всего –

Смежные вопросы