Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Использование переменных из settings.py в шаблнах [RSS Feed]

#1 Сен. 21, 2011 15:17:29

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование переменных из settings.py в шаблнах

Есть базовый шаблон base.html, в котором используется переменная {{ STATIC_URL }}, значение которой задано в settings.py.
Но при выводе шаблона значения STATIC_URL не подставляется.

views.py

def list(request):
posts = Project.objects.all()
t = loader.get_template("projects/list.html")

c = Context({'posts':posts, 'title':u'Проекты'})
return HttpResponse(t.render(c))
list.html
{% extends "base.html" %}

{% block content %}
<img src='/media/{{p.img}}'/>{{ MEDIA_URL }}{{p.img}}
{% endblock %}
Подскажите, плз, в чем причина.



Отредактировано (Сен. 21, 2011 15:22:11)

Офлайн

#2 Сен. 21, 2011 15:55:34

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование переменных из settings.py в шаблнах

Попробуте так:

def list(request):
posts = Project.objects.all()
return render(request, 'projects/list.html', {'posts':posts, 'title':u'Проекты'})
Плюс проверьте чтобы django.core.context_processors.static был в TEMPLATE_CONTEXT_PROCESSORS в settings.py

Если нужно обязательно с голыми темплейтами:
...o_O... Где это код делся?...
шорткаты - https://docs.djangoproject.com/en/dev/topics/http/shortcuts/

PS: У вас в темплейте MEDIA_URL вместо STATIC_URL
Если все верно и вам нужно отдавать файлы загруженные пользователями.
То это отдельная тема:
https://docs.djangoproject.com/en/dev/howto/static-files/#staticfiles-other-directories



Отредактировано (Сен. 22, 2011 11:29:40)

Офлайн

#3 Сен. 22, 2011 11:16:17

mc
От:
Зарегистрирован: 2011-09-21
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование переменных из settings.py в шаблнах

спасибо огромное. получилось.

только не совсем ясно зачем нужны render_to_response() или

    t = loader.get_template("projects/list.html")    
c = Context({'posts':posts, 'title':u'Проекты'})
return HttpResponse(t.render(c))
если они request не подставляют. Для голых темплейтов? А зачем такие нужны? =)



Офлайн

#4 Сен. 22, 2011 11:33:33

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Использование переменных из settings.py в шаблнах

Ну, request не всегда нужно в темплейт передавать.
render_to_response, может request передавать:

render_to_response('template', context_dict, context_instance=RequestContext(request))



Офлайн

  • Начало
  • » Django
  • » Использование переменных из settings.py в шаблнах[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version